关于Spring的JdbcTemplate批量更新batchUpdate()方法的返回值为-2的异常_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4551 | 回复: 0   主题: 关于Spring的JdbcTemplate批量更新batchUpdate()方法的返回值为-2的异常        下一篇 
    本主题由 Administrator 于 2014-9-16 15:20:48 移动
johnnyfox
注册用户
等级:新兵
经验:41
发帖:90
精华:0
注册:2011-12-12
状态:离线
发送短消息息给johnnyfox 加好友    发送短消息息给johnnyfox 发消息
发表于: IP:您无权察看 2014-9-16 10:56:51 | [全部帖] [楼主帖] 楼主

7月推荐文章 

【限时活动】建专辑得大奖 

近日在使用JdbcTemplate做大量的数据库数据同步的工作,基本就是“从A库查询数据--生成CSV--解析成SQL插入B库”这样一个过程。因为使用的是JdbcTemplate,所以在将数据导入B库时采用的是“先批量删,再批量插入”的策略。如果B库有相同主键的记录,则会先删掉,然后再将数据批量插入,这样就避免了主键冲突异常。这样更新数据量=删除记录数,新增数据量=总数据量-更新数据量。 但是在使用batchUpdate()函数时遇到了执行结果为-2的问题,先查查API: 

batchUpdate
public int[] batchUpdate(String[] sql)
throws DataAccessException
Description copied from interface: JdbcOperations
Issue multiple SQL updates on a single JDBC Statement using batching.
Will fall back to separate updates on a single Statement if the JDBC driver does not support batch updates.
Specified by:
batchUpdate in interface JdbcOperations
Parameters:
sql - defining an array of SQL statements that will be executed.
Returns:
an array of the number of rows affected by each statement
Throws:
DataAccessException - if there is any problem executing the batch


返回值为一个整型的数组,数组的每个元素值对应每条SQL影响的数据库的记录数。 

这样无论如何负值也无法理解的。网上查询有地方说是驱动的问题,然后动手用JDBC的PreparedStatement测试了一把,同样的结果。那么说,出现这种结果的根本原因是JDBC驱动。 

从Oracle的官网下载了Oracle11gR2的最新驱动ojdbc6.jar,目前问题仍然存在。。。

该贴由system转至本版2014-9-16 15:20:48




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论