addBatch()
向这个PreparedStatement对象的命令批处理添加一组参数。
抛出:
SQLException—如果发生数据库访问错误,或者在关闭的PreparedStatement上调用此方法
executeBatch()
提交一批命令到数据库执行,如果所有命令都成功执行,则返回一个更新计数数组。返回的数组的int元素的顺序与批处理中的命令相对应,这些命令的顺序是根据它们添加到批处理中的顺序来排序的。executeBatch方法返回的数组元素可以是下列元素之一:
一个大于或等于零的数字——表示命令已成功处理,它是一个更新计数,给出数据库中受命令执行影响的行数
SUCCESS_NO_INFO——表示命令处理成功,但受影响的行数未知
如果批处理更新中的某个命令未能正确执行,该方法将抛出一个BatchUpdateException, JDBC驱动程序可能会继续处理批处理中的其他命令,也可能不会。然而,驱动程序的行为必须与特定的DBMS保持一致,要么总是继续处理命令,要么永远不继续处理命令。如果驱动程序在失败后继续处理,则由方法BatchUpdateException返回的数组。getUpdateCounts将包含与批处理中有多少命令一样多的元素,并且至少有一个元素如下所示:
EXECUTE_FAILED的值——表示命令未能成功执行,只有在命令失败后驱动程序继续处理命令时才会发生
可能的实现和返回值已经在Java 2 SDK,标准版,1.3版本中进行了修改,以适应在抛出一个BatchUpdateException对象后,在批量更新中继续处理命令的选项。
返回:
更新计数数组,包含批处理中的每个命令的一个元素。数组的元素按照向批处理中添加命令的顺序排列。
抛出:
SQLTimeoutException——当驱动程序确定setQueryTimeout方法指定的超时值已经超过,并且至少尝试取消当前正在运行的语句时
SQLException——如果发生数据库访问错误,这个方法会在一个封闭语句上调用,或者驱动程序不支持批处理语句。如果发送给数据库的某个命令未能正确执行或试图返回结果集,则抛出BatchUpdateException (SQLException的子类)。