java对mysql进行批处理插入数据,如何返回错误的没插入数据 5

 我来答
蓝果大刀
2014-12-22 · TA获得超过259个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:239万
展开全部
PreparedStatement的addBatch方法添加批处理项,executeBatch执行批处理。

executeBatch返回包含批中每个命令的一个元素的更新计数所组成的数组。

方法 executeBatch 返回的数组中的元素可能为以下元素之一:

1、大于等于 0 的数 - 指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数。
2、SUCCESS_NO_INFO 的值 - 指示成功执行了命令,但受影响的行数是未知的
如果批量更新中的命令之一无法正确执行,则此方法抛出 BatchUpdateException,并且 JDBC
驱动程序可能继续处理批处理中的剩余命令,也可能不执行。无论如何,驱动程序的行为必须与特定的 DBMS
一致,要么始终继续处理命令,要么永远不继续处理命令。如果驱动程序在某一次失败后继续进行处理,则
BatchUpdateException.getUpdateCounts
方法返回的数组将包含的元素与批中存在的命令一样多,并且其中至少有一个元素将为:
3、EXECUTE_FAILED 的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现
薇美缘h
2014-12-22 · TA获得超过468个赞
知道小有建树答主
回答量:365
采纳率:50%
帮助的人:175万
展开全部
insert int table1(id,name) values (1,"tom");
这种形式,不要省去 (id,name)这样可能插入数据不对应,导致报错,99%的插入报错都是
这种情况导致的。
希望可以帮到你。
追问
我的意思是想通过批处理,把执行插入时没有插入的,或者插入错误的数据,保存下来
追答
你用的是ps.executeBatch();么
如果是这个的话,那就不可以。但是你如果用
ps.execute();
if(!ps.execute()){
System.out.println(~);
}
这个可以,返回false就把当前插入的数据输出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式