java对mysql进行批处理插入数据,如何返回错误的没插入数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java对mysql进行批处理插入数据,如何返回错误的没插入数据相关的知识,希望对你有一定的参考价值。
PreparedStatement的addBatch方法添加批处理项,executeBatch执行批处理。executeBatch返回包含批中每个命令的一个元素的更新计数所组成的数组。
方法 executeBatch 返回的数组中的元素可能为以下元素之一:
1、大于等于 0 的数 - 指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数。
2、SUCCESS_NO_INFO 的值 - 指示成功执行了命令,但受影响的行数是未知的
如果批量更新中的命令之一无法正确执行,则此方法抛出 BatchUpdateException,并且 JDBC
驱动程序可能继续处理批处理中的剩余命令,也可能不执行。无论如何,驱动程序的行为必须与特定的 DBMS
一致,要么始终继续处理命令,要么永远不继续处理命令。如果驱动程序在某一次失败后继续进行处理,则
BatchUpdateException.getUpdateCounts
方法返回的数组将包含的元素与批中存在的命令一样多,并且其中至少有一个元素将为:
3、EXECUTE_FAILED 的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现 参考技术A insert int table1(id,name) values (1,"tom");
这种形式,不要省去 (id,name)这样可能插入数据不对应,导致报错,99%的插入报错都是
这种情况导致的。
希望可以帮到你。追问
我的意思是想通过批处理,把执行插入时没有插入的,或者插入错误的数据,保存下来
追答你用的是ps.executeBatch();么
如果是这个的话,那就不可以。但是你如果用
ps.execute();
if(!ps.execute())
System.out.println(~);
这个可以,返回false就把当前插入的数据输出来。
JAVA中,向MYSQL插入多条数据,如何判断如果某记录已经存在就不插入
如题,是多条记录同时插入,在后台判断!如果是查询数据库再循环匹配的话效率太低。有没有更好一点的方法!
程序做。1、先检索已经有的数据。(第一次查询数据库,找到所有已存在记录)
2、和要插入的数据做比较,找出新数据。
3、插入新数据。
不要每次检索是否存在,会死人的。 参考技术A 那么给你一个建议,使用ajax技术,在用户录入数据时就进行判断,然后再直接存入,这样就不用在存入时判断!!希望对你有用!!! 参考技术B if(!hasRecord()) //如果数据库中没有此数据
//执行插入
else
//不处理或者其他提示信息
参考技术C 直接插,根据返回码判断成功与否 参考技术D 触发器
以上是关于java对mysql进行批处理插入数据,如何返回错误的没插入数据的主要内容,如果未能解决你的问题,请参考以下文章