elysion_k 2015-09-06 09:37 采纳率: 5%
浏览 2181
已结题

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

搞了一天了没弄明白, 求解

  • 写回答

3条回答 默认 最新

  • Robot-C 2015-09-06 09:40
    关注

    JDBC当中的批处理在对数据库进行批量操作时,应分析操作的前后相关性,如果属于大批量的操作,而且前续操作的结果不依赖与后继操作,则完全可以使用批处理来操作DB。 使用批处理的优点: 1.  多个SQL语句的执行,共用一个Connection资源。在对数据库操作时,connection资源是很宝贵的,数据库的维护从某种角度来说,就是减少数据库的连接数,减轻对DB的压力。创建一个数......
    答案就在这里:JDBC当中的批处理
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog