com.mysql.cj.exceptions.StatementIsClosedException: No operations allowed after statement closed.
时间: 2023-09-07 22:16:15 浏览: 155
No operations allowed after statement closed.
这个错误是由于在代码中的两个版本中,删除操作的顺序不同导致的。在引用\[1\]中的代码中,先执行了`pre.setInt(1, id)`,然后才创建了`pre`对象。而在引用\[2\]中的代码中,先创建了`pre`对象,然后才执行了`pre.setInt(1, id)`。这个错误的原因是在执行`pre.setInt(1, id)`之前,`pre`对象还没有被创建,所以会抛出`StatementIsClosedException`异常。
此外,引用\[3\]提到了在MySQL中不建议使用这种方法,因为在第一个数据库操作失败后,第二个数据库操作成功之前如果出现重新连接的情况,会导致出现类似的错误。这是因为在重新连接后,之前的`Statement`对象会被关闭,再次使用就会抛出`StatementIsClosedException`异常。
为了解决这个问题,可以将创建`pre`对象的代码放在设置参数之前,确保`pre`对象在设置参数之前已经被创建。这样就可以避免`StatementIsClosedException`异常的发生。
#### 引用[.reference_title]
- *1* *2* *3* [Mysql异常No operations allowed after statement closed](https://blog.csdn.net/ggk911/article/details/128526130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文