jdbc 连接 mysql批量操作返回值问题

愤怒的大菠萝 发布于 2013/11/21 11:46
阅读 706
收藏 0

前提 利用mysql jdbc 批量操作 插入(调用executeBatch()方法 返回的是 int[] 数组)12条数据

"jdbc:mysql://localhost:3307/ss?useUnicode=true&characterEncoding=UTF-8" 

返回的int []  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

加上rewriteBatchedStatements=true 返回 int[] [12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12]

为什么会出现这种情况 求大神解释

加载中
0
DarkBaron
DarkBaron

executeBatch()方法返回的数组,表示的意义是每条语句执行了几条记录的修改。

你是执行插入语句,执行成功的话,肯定是只修改一条记录,所以,返回结果为1.一般用它可以来判断语句是否执行成功。

小白小霸王
小白小霸王
都报错了 还能看到结果吗? 直接跳到catch里了吧? 我去试试
0
大米被占用
大米被占用

MySQL Jdbc驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,直接造成较低的性能。所以返回的数组中每次影响的行数都是1。


只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL,12条sql一起执行,一共影响行数就是12行了。

参考:http://www.cnblogs.com/chenjianjx/archive/2012/08/14/2637914.html

返回顶部
顶部