我想知道多次执行PreparedStatement是一个好习惯,还是每次都要重新初始化它。
例如:
while(i<100){
PreparedStatement ptsmt = con.preparedStatement("INSERT into counts (counter) values (?)");
ptsmt.setInt(1,i);
ptsmt.executeUpdate();
}
更糟还是更好?
PreparedStatement ptsmt = con.preparedStatement("INSERT into counts (counter) values (?)");
while(i<100){
ptsmt.setInt(1,i);
ptsmt.executeUpdate();
}
答案 0 :(得分:3)
建议使用第二个代码。 PreparedStatement
旨在重复使用。阅读documentation所说的内容:
SQL语句已预编译并存储在
PreparedStatement
对象中。然后,可以使用此对象多次有效地执行此语句。
请务必在重复使用之前致电clearParameters()
:
PreparedStatement pstmt = conn.preparedStatement(
"INSERT INTO counts (counter) VALUES (?)");
while (i < 100) {
pstmt.clearParameters();
pstmt.setInt(1, ++i);
pstmt.executeUpdate();
}
答案 1 :(得分:1)
首选第二个。重点是创建一次并重复使用它。