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

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,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!