重新使用java.sql.Statement对象同时在多个线程中执行多个查询 是一个好主意吗?
我已经在某处读过,建议重复使用相同的语句对象,但这是顺序执行。
Statement statement = con.createStatement();
现在,如果我使用此单个语句实例为同时多个线程中的多个查询运行executeUpdate()
?
请注意,它不是PreparedStatement,我没有得到任何ResultSet。
我认为答案取决于两种情况:
我的理解是否正确?
感谢。
答案 0 :(得分:2)
ResultSets
与Statement
相关联。当另一个线程突然发出新查询时,你不希望在ResultSet
内进行迭代(ResultSet
将被关闭,至少如果驱动程序是一个表现良好的那个)。
也没有迹象表明Statements
是线程安全的。如果没有明确指出,则它不是线程安全的(至少在大多数情况下)。