⑴ java如何實現每20條數據選擇一條入庫
可以使用java中的模塊化編程思想,分成兩個模塊,一個模塊用悶鍵來收集數據,將收皮悔集到的數據存儲在一個數組中,另一個模塊用來處理每20條數據中選擇一條進行入庫。
1.收集數據:// 聲明一個數組,用於燃罩正存儲收集到的數據String[] dataArray = new String[20];// 循環收集數據,每次收集20條for(int i=0; i<20; i++){ dataArray[i] = getDataFromSource();}
2.處理數據:// 隨機生成一個數字,作為要入庫的數據的索引int index = (int)(Math.random() * 20);// 取出要入庫的數據String data = dataArray[index];// 將數據入庫insertDataIntoDB(data);
⑵ java怎麼將選中的多行數據插入表中
java 連接資料庫時,往資料庫一次添加多條數據,可以在 DAO 層,使用
executeBatch0批量插入數據,如下代
碼:
conn = DBToolkit .getConnection0;
Statement stmt =
conn . createStatementO ; j //連續添加多條 SQL
stmt . addBatch (" insert into testdb . book ( kind , name ) values ( java ', java in j
aciton )");
stmt . addBatc (" insert into testdb . book ( kind , name ) values ( c ',』 c in aciton )");//執行批量執行
stmt .executeBatch0);
⑶ java mysql批量insert多少條效率最高
conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
pstmt = conn
.prepareStatement("insert into loadtest (id,
data) values (?, ?)");
for (int i = 1; i <= COUNT; i++)
{
pstmt.clearParameters();
pstmt.setInt(1,
i);
pstmt.setString(2, DATA);
pstmt.execute();
}
MyISAM:沖皮246.6秒、InnoDB:360.2秒悔判念
方法2: 使用事務,不自動commit
Java code
復制代碼
代碼如下:
conn =
DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS);
conn.setAutoCommit(false);
pstmt = conn
.prepareStatement("insert into loadtest (id, data) values (?, ?)"碧困);
for (int i = 1; i <= COUNT; i++) {
pstmt.clearParameters();
pstmt.setInt(1, i);
pstmt.setString(2, DATA);
pstmt.execute();
if (i %
COMMIT_SIZE == 0) {
conn.commit();
}
}
conn.commit();
InnoDB:31.5秒
⑷ java中怎麼一次性向表中插入一條或多條數據
java連接資料庫時,往資料庫一次添加多轎困條數據段談,可以在DAO層,使用executeBatch()批量插入數據,如下代碼:
conn = DBToolkit.getConnection();
Statement stmt = conn.createStatement();
//連續添加多條SQL
stmt.addBatch("insert into testdb.book (kind, name) values ('java', 'java in aciton')");
stmt.addBatch("insert into testdb.book (kind, name) values ('c', '閉燃念c in aciton')");
//執行批量執行
stmt.executeBatch();
⑸ java怎麼把數據批量插入資料庫中
傳統拼接insert into table() values(),(),()這種方式實現批量插入
採用數銷納據庫持久化唯斗拿框架,比如hibernate,根據插入的記錄數,設定每多少次循環執指搭行一次commit操作
⑹ 在Java層面控制ibatis 批量insert
sqlSession.insert(sqlmapNamespace + ".insertList", tempEnt);
資料庫羨顫是oracle , 你只能先襪洞查詢然後在插入。我用的是mybatis
insert into cc_facinputtrack
(faccode,statdate,filltercom,inputstate,inputdate)
(
<foreach collection="list" item="item" index="index"
separator="union all">
select
#{item.faccode,jdbcType=VARCHAR},#{item.statdate,jdbcType=TIMESTAMP},
#{item.filltercom,jdbcType=TIMESTAMP},
#{item.inputstate,jdbcType=VARCHAR},#{item.inputdate,jdbcType=TIMESTAMP}
from al
</兄好敗foreach>
)
⑺ java中怎麼實現批量錄入數據
批量數據進入資料庫使用addBatch()和executeBatch()方法
PreparedStatement.addBatch();
......
PreparedStatement.executeBatch();
需要注意的是轎啟中一次最多不要超過50條:
1.因為插入的時候資料庫已經鎖定,然而若是一次性插入太多會造成其他業務的等待。
2.會造成內存的溢出
舉例:
PreparedStatementpst=(PreparedStatement)con.prepareStatement("insertinto*****values(?,'***')");
for(inti=0;i<10000;i++){
pst.setInt(1,i);
//把一個SQL命令加入命令列表
pst.addBatch();
}
//執行批量更新
pst.executeBatch();
//語句執行完畢,提交本事務
con.commit();
資料來源:CSDN論壇旁沖-原資論壇料鏈接如下
URLSRC:閉山http://bbs.csdn.net/topics/320048117