问题描述
- jdbc批处理的addBatch问题
-
preparedstatement = connection.prepareStatement(sql.toString()); for (int i = 0; i < list.size(); i++) { Map map = list.get(i); Set<Entry> entries = map.entrySet(); for (Entry entry : entries) { preparedstatement.setString(size, entry.getValue().toString()); size++; } preparedstatement.addBatch(); if(++count % DB_BATCHSIZE == 0){ preparedstatement.executeBatch(); } } preparedstatement.executeBatch();
sql语句没有问题, 因为已经执行成功, 但是!!! 只能执行一条数据
list如果只有1条数据则执行成功 , 如果超过1条,报错
错误为 索引中丢失 IN 或 OUT 参数 ::10搞了一天了没弄明白, 求解
解决方案
http://fire11.iteye.com/blog/771208
解决方案二:
JDBC当中的批处理在对数据库进行批量操作时,应分析操作的前后相关性,如果属于大批量的操作,而且前续操作的结果不依赖与后继操作,则完全可以使用批处理来操作DB。?使用批处理的优点:?1. ?多个SQL语句的执行,共用一个Connection资源。在对数据库操作时,connection资源是很宝贵的,数据库的维护从某种角度来说,就是减少数据库的连接数,减轻对DB的压力。创建一个数......
答案就在这里:JDBC当中的批处理
----------------------
解决方案三:
这个问题有待处理,文件不确定!~
时间: 2025-01-01 10:24:45