多次执行PreparedStatement是一个好习惯吗?

时间:2014-11-11 23:08:26

标签: java jdbc

我想知道多次执行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();
}

2 个答案:

答案 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)

首选第二个。重点是创建一次并重复使用它。