㈠ java 怎麼把5萬條數據分批插入數據到mysql,之前插1,2萬沒事, 多了就內存溢出
你的事務控制問題。
大量數據插入的時候,可以將數據量分批,每次事務提交一批。
例如:
con.setAutoCommit(false);// 更改JDBC事務的默認提交方式
Statement stmt = conn.createStatement();
// 第一批 省略n條
stmt.addBatch("insert into dept values (52,'a','aa')");
stmt.addBatch("insert into dept values (53,'b','bb')");
stmt.addBatch("insert into dept values (54,'c','cc')");
stmt.executeBatch();
con.commit();//提交JDBC事務
stmt.close();
// 第二批 省略n條
stmt = conn.createStatement();
stmt.addBatch("insert into dept values (52,'a','aa')");
stmt.addBatch("insert into dept values (53,'b','bb')");
stmt.addBatch("insert into dept values (54,'c','cc')");
stmt.executeBatch();
con.commit();//提交JDBC事務
stmt.close();
// 第n批
。。。。。。
con.setAutoCommit(true);// 恢復JDBC事務的默認提交方式
conn.close();
㈡ 批量插入報錯:java.sql.SQLException: Missing IN or OUT parameter at index:: 11
根據你給的信息判斷:你第11個輸入參數丟失,也就是compliance.getId()為null,然後它對應表裡的欄位是id,可能在表裡該欄位不能為空,所以出現上面錯誤信息.
你可以把comliance.getId()換成一個具體的阿拉伯數字測試一下.
別忘了採納,我急用財富值。謝謝
㈢ java jdbc 執行sql語句批量操作問題
sql優化:
1.name欄位創建索引
2.「table_c.*」 不要用」*「號,可以換成table_c.id,table_c.name,table_c.sex,table_c.email
如果可以的話,你和以在insert into table_a 中間加 append ,這樣寫 insert /*+ append */ into
希望能幫到你!
㈣ Java 怎麼向sql資料庫中插入多條數據
1、循環調用insert
2、使用sql 編譯對象的批量執行
addBatch
㈤ 如何利用java連接資料庫並批量插入數據
簡單手寫一下
Stringsql="insert()values(?,?)";
conn.setAutoCommit(false);//關掉自動提交
PreparedStatementps=conn.prepareStatement(sql);
for(inti=0;i<list.getSize();i++){
ps.setString(1,list.get(i).xx);
ps.setString(2,list.get(i).yy);
ps.addBatch();
if(i%100==0){//用來處理大量數據,分批次提交
ps.excuteBatch();
ps.clearBatch();
}
}
ps.excuteBatch();
conn.commit();
ps.close();
㈥ java 怎麼多表同時插入到資料庫
java連接資料庫時,往資料庫一次添加多條數據,可以在DAO層,使用executeBatch()批量插入數據,如下代碼: conn = DBToolkit.getConnection(); Statement stmt = conn.createStatement(); //連續添加多條SQL stmt.addBatch("insert into testdb....
㈦ 怎麼用java代碼把已編輯好定製格式的Excel文檔批量導入到sql server資料庫中
先讀取EXCEL 文件,把數據存入List1集合。
然後,遍歷list集合,拼接SQL語句,存入新List2集合。
使用批處理,遍歷執行List2中的SQL語句