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