我的应用程序在每次无限循环中都使用一些准备好的语句。
在循环之前创建prepareStatement并在循环中仅运行pstmt.execute是否安全?
简单的陈述也很有趣。
最佳答案
“无限循环”?抱歉,这听起来是个坏主意。
当人们说在一个循环中多次调用一个准备好的语句是一个好主意时,人们是正确的。但隐含的是一个具有确定的开始和结束的循环。
我对您的“无限循环”表示怀疑。听起来更像是您想保持活动状态以响应某些数据库事件的侦听器。
答案“很好”是正确的,但可能会很有趣地更详细地介绍您的工作。
评论后更新:
我有一个侦听事件的Atom RSS服务器。收到请求时,我将让RSS侦听器将其交给一个服务,该服务将从连接池中断开连接,启动事务,在方法范围内创建一个准备好的语句,插入消息,关闭准备好的语句在方法范围内的finally块中,提交事务,并将连接返回到池中。
JDBC驱动程序或数据库将缓存PreparedStatements,因此不会造成效率低下。无需挂在一个上。
没有无限循环。这样就没有线程问题。
关于java - 多次使用准备好的语句是否资源安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3404738/