㈠ 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语句