java - 如何在executeBatch()之前检查Prepared Statement是否有一些批处理?

标签 java jdbc prepared-statement

我对Java中的Prepared Statement有疑问,因为我对此了解不多。

我有一个必须使用PreparedStatement 的用例。但我只是在编写代码之前想:

while(...)
{
   if(...)
   {
     preparedStatement.setString(1, fname);
     preparedStatement.setString(2, lname); 
      ...
     preparedStatement.addBatch();
   }
}
preparedStatement.executeBatch();

让我们考虑上面的代码。有一个 while 循环,它会做一些事情,然后检查一些条件,然后在准备好的语句中添加批处理。

1)所以,我的问题是,假设没有在准备好的语句中添加任何批处理,但我仍然说executeBatch。它会给我异常还是会正常执行?

2)有没有办法在执行前检查preparedstatement中的批处理?

谢谢。

最佳答案

它应该可以正常工作并返回一个空数组。据我所知,了解当前是否添加批处理的唯一方法是自己跟踪它们。

另一方面,如果您只想知道实际执行了多少条语句,那么您可以使用返回的更新计数数组来检查运行了多少个查询,以及各个查询其中的值(value)观,以了解他们每个人是否成功。请参阅 executeBatch() 的文档了解更多详情。

关于java - 如何在executeBatch()之前检查Prepared Statement是否有一些批处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15221196/

相关文章:

java - 我的 UML 图对于附加代码是否正确?

design-patterns - 为什么JDBC是桥接设计模式的典型应用?

mysql - 是否可以使用预准备语句在 MySQL 中创建表?

java - 将大字符串转换为 bigInteger 并将其传递给准备好的语句

mysql - 无法在mysql中执行准备好的语句

Java Swing - JTextPane 中插入组件的问题

java - 使用 Java 中的外部 DTD 进行 XML 验证

java - 如何以可移植且针对每个应用程序的方式在 JBoss 上自动创建 JMS 主题/队列?

Java Spring - RowMapper ResultSet - 整数/空值

tomcat - 为什么 JDBC 驱动程序调用在 Tomcat 中有效,但在 JBOSS 中无效