Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印失败的行PreparedStatement addBatch_Java_Sql_Exception_Jdbc_Prepared Statement - Fatal编程技术网

Java 打印失败的行PreparedStatement addBatch

Java 打印失败的行PreparedStatement addBatch,java,sql,exception,jdbc,prepared-statement,Java,Sql,Exception,Jdbc,Prepared Statement,我正在使用PreparedStatement addBatch 当一行插入失败时,我应该如何处理这种情况 例如,假设要插入的1000行中,第100行插入失败,程序突然结束,而没有插入其余行(即从第100行到第1000行) 我想打印失败行,以便能够检查问题。对于错误处理和返回值,ExecuteBatch方法没有标准行为,这取决于您使用的DBMS和JDBC驱动程序。 例如,Oracle驱动程序在BatchUpdateException中返回一个数组,其中每个成功记录都有一个元素。数组的索引和添加到语

我正在使用PreparedStatement addBatch

当一行插入失败时,我应该如何处理这种情况

例如,假设要插入的1000行中,第100行插入失败,程序突然结束,而没有插入其余行(即从第100行到第1000行)


我想打印失败行,以便能够检查问题。

对于错误处理和返回值,
ExecuteBatch
方法没有标准行为,这取决于您使用的DBMS和JDBC驱动程序。 例如,Oracle驱动程序在
BatchUpdateException
中返回一个数组,其中每个成功记录都有一个元素。数组的索引和添加到语句中的批的索引对齐,这意味着最大的数组索引指示成功插入的最后一个批记录。
但这对于特定的DMBS/驱动程序组合无效,因此检查它的唯一方法是使用调试器,模拟错误,在异常捕获代码处设置断点,并查看异常对象。

如果“程序突然结束”,听起来像是异常。您是否尝试捕获异常?是的,但我希望它尝试执行的最后一个sql查询不是失败的原因。我使用mssql,那么我应该如何使用mssql driverYes,您尝试捕获异常了吗?如果是,那是什么异常?捕获异常后是否尝试继续?(请阅读)只需将代码放入try/catch块中,并捕获第一个BatchUpdateException和之后的异常。您可能会得到第一个异常,在这种情况下,只需检查返回数组中的项数,调用exception对象上的getUpdateCounts(),否则告诉我们您得到的异常类型。