Statement.executeBatch()
的文档尚不清楚,但是我认为调用它会像Statement.executeBatch()
一样清空Statement
对象的当前SQL命令列表。我还假设clearBatch()
也是如此。
我想可以在调用clearBatch()
之后继续使用PreparedStatement
,即添加另一批命令并执行它们。
尽管PreparedStatement
的API文档中没有明确提及,但行为是由[[14.1.2成功执行中的Statement
指定的:]
一旦executeBatch返回,该语句的批处理将重置为空。
尽管这在名为“成功执行”的部分中进行了指定,但它也是不成功执行的预期行为。
简而言之,当您调用Statement.executeBatch()
时,当前的语句批次将提交到数据库服务器并清除。