PreparedStatement的批量更新的问题(只执行最后一条插入语句)

本帖最后由 zhrubin 于 2014-07-07 10:47:41 编辑

后台是MySql,大家有没有碰到添加了很多addBatch,但是最终commit完,只

执行最后一条的情况。

conn = BaseDaoLocalImpl.getBase().getConn();

conn.setAutoCommit(false);

sql = "insert into course_charge_standard (big_num,course_name,course_level,course_type,course_std,charge_type," +//6列

"start_date,course_object,course_info,course_memo,branch_num) values(?,?,?,?,?,?,?,?,?,?,?)";//5列

for(int i =0; i

Course_charge_standard ccs = ccsList.get(i);

pstmt = conn.prepareStatement(sql);

pstmt.setLong(1, ccs.getBig_num());

pstmt.setString(2, ccs.getCourse_name());

pstmt.setString(3, ccs.getCourse_level());

pstmt.setString(4,ccs.getCourse_type());

pstmt.setBigDecimal(5, ccs.getCourse_std());

pstmt.setString(6, ccs.getCharge_type());

pstmt.setString(7, ccs.getStart_date());

pstmt.setString(8, ccs.getCourse_object());

pstmt.setString(9, ccs.getCourse_info());

pstmt.setString(10, ccs.getCourse_memo());

pstmt.setInt(11, ccs.getBranch_num());

pstmt.addBatch();

}

int[] executeBatch = pstmt.executeBatch();//这里只返回了1

for (int j : executeBatch) {

System.out.println(" j="+j);

}

conn.commit();

但是如果在

pstmt.addBatch();后面紧跟一句 pstmt.executeBatch();,即每addBatch一次,就executeBatch一次,就没有问题。

------解决方案--------------------

把pstmt = conn.prepareStatement(sql);移到for 循环外面。

------解决方案--------------------

pstmt = conn.prepareStatement(sql);  这个 问题了, 你放循环外面。

mysql preparedstatement 批量update,PreparedStatement的批量更新的有关问题(只执行最后一条插入语句)...相关推荐

  1. mysql更新两表所有记录语句怎么写_mysql 一条sql语句update更新两个表

    mysql 一条sql语句update更新两个表 你写过一条sql语句来修改两个表的数据吗? UPDATE test.table1 t1,test.table2 t2 SET t1.aa='a',t1 ...

  2. mysql 索引 死锁,由不同的索引更新解决MySQL死锁套路

    前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实际的死锁案例,下面小编来简单介绍下 前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实 ...

  3. 面试题:一条 sql 语句是如何经过 MySQL 的体系结构的?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:有了这 4 款工具,老板再也不怕我写烂SQL了个人原创+1博客:点击前往,查看更多 作者:李福春 来源:http ...

  4. mysql导入多条数据语句_MySQL插入多条记录和REPLACE语句

    今天遇到样一个问题,在使用Mysql数据库时,新建一个表,并设置主键为自增长,结果当我一次执行多条插入语句时悲剧了,它竟然报错了,信息如下: 错误码: 1064 You have an error i ...

  5. linux sql命令行查询语句不要换行_面试刷题mysql1:一条sql语句是如何经过mysql的体系结构的?...

    mysql执行一条sql查询语句背后发生了什么呢? 我是李福春,我在准备面试,今天的题目是: mysql的体系结构是怎样的?一条sql语句在mysql的体系结构中经历了什么? 答: mysql体系结构 ...

  6. kettle 常用输出(插入更新、表输出、执行 SQL 脚本)

    上一篇 文章 ,主要讲了 kettle 的原理.安装及简单的使用.其中用到了一种输出方式:插入更新. 这篇文章,主要介绍下常用的输出方式:插入更新.表输出.执行 SQL 脚本. 插入更新 插入更新,顾 ...

  7. Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例

    如何用一条sql语句实现批量更新?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现. 代码如下: UPDATE mytable SET myfield = CASE id WHE ...

  8. mysql update多条件批量更新_Mybatis中进行批量更新(updateBatch)

    更新多条数据,每条数据都不一样 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新.(2)一次性更新所有数据(更准确的说是一条sql语句来更新所有数据,逐条更新的操作 ...

  9. 【MySQL】 update 大量数据批量更新

    文章目录 更新字段,多种操作 更新一条数据的某个字段,一般这样写: 更新同一字段为同一个值,mysql也很简单,修改下where即可: 更新多条数据为不同的值,可能很多人会这样写: 那么能不能一条sq ...

最新文章

  1. linux c 函数 link symlink unlink 链接相关功能
  2. “网红” WebAssembly 与 K8s 如何实现双剑合璧?
  3. MyBatisPlus条件构造器带条件删除delete使用
  4. 在JavaScript中遭遇级联表达式陷阱
  5. RESTful API接口文档规范小坑
  6. Scilab 求解线性方程组示例(linsolve)
  7. 判断release模式_AbstractQueuedSynchronizer共享模式与基于Condition的等待/通知
  8. oracle导致的负载高,oracle服务器负载过高_停止RMAN备份任务
  9. 自动划分-------训练集+验证集+测试集(code,自己设置比例)
  10. 2017 Multi-University Training Contest - Team 7:1003. Color the chessboard(...)
  11. Java传参是字节还是字符串好_深入分析java传参
  12. Tomcat安装步骤及详细配置教程(2022最新版)
  13. Cisco Packet Tracer思科模拟器路由器系统的备份与恢复
  14. 半导体储存器例题小试--十安辰
  15. 手机屏幕取词翻译软件哪个比较好?快看这篇文章,它能告诉你
  16. 哈工大计算机网络期末复习资料知识点总结
  17. 圆角装饰条_护角条是圆角好还是直角好
  18. JSONObject、JSONArray
  19. .net mvc 在 cshtml 中输出 html 格式问题
  20. 基于Javaweb的小项目(类似于qqzone) 7 —— 日志相关操作

热门文章

  1. 一秒完成充电,超级量子电池即将问世
  2. php开发以太坊无法连接到远程Geth,connect: permission denied.
  3. sql之left join、right join、inner join的区别,连接自己时的查询结果测试
  4. python3--装饰器
  5. Eclipse的SVN插件移动中文名称文件提示org.tigris.subversion.javahl.ClientException: Bogus URL...
  6. 经常使用的时间同步server地址
  7. 美国康普SYSTIMAX iPatch智能配线系统介绍
  8. 供应链攻击已成全球企业的“心腹大患”
  9. linux shell 计算时间差
  10. java maven项目构建ssh工程 父工程与子模块的拆分与聚合