在使用带有单个公共连接且没有任何池的PreparedStatement的情况下,我可以为每个具有预准备语句功能的dml / sql操作重新创建一个实例吗?
我的意思是:
for (int i=0; i<1000; i++) {
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setObject(1, someValue);
preparedStatement.executeQuery();
preparedStatement.close();
}
代替:
PreparedStatement preparedStatement = connection.prepareStatement(sql);
for (int i=0; i<1000; i++) {
preparedStatement.clearParameters();
preparedStatement.setObject(1, someValue);
preparedStatement.executeQuery();
}
preparedStatement.close();
我的问题是我想将此代码放入多线程环境中,您能给我一些建议吗?谢谢
可以说如果查询正在更改,那么第二种方法还是更好的吧?有什么缺点吗?
—
万人迷
sql
在循环中不会更改?如果该查询在循环的每次迭代中都没有更改,那么为什么要PreparedStatement
为每个迭代(在第一个代码段中)创建一个新的?有什么理由吗?