Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多次执行PreparedStatement是一种好的做法吗?_Java_Jdbc - Fatal编程技术网

Java 多次执行PreparedStatement是一种好的做法吗?

Java 多次执行PreparedStatement是一种好的做法吗?,java,jdbc,Java,Jdbc,我想知道多次执行PreparedStatement是一种好的做法,还是每次都应该重新初始化它 例如: while(i<100){ PreparedStatement ptsmt = con.preparedStatement("INSERT into counts (counter) values (?)"); ptsmt.setInt(1,i); ptsmt.executeUpdate(); } 比……更糟还是更好 PreparedStatement ptsm

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

我更喜欢第二个。关键是创建一次并重用它。

首选第二个。关键是创建一次并重用它。

建议使用第二个代码。PreparedStatement旨在重复使用。阅读下面的内容:

SQL语句被预编译并存储在PreparedStatement对象中。然后可以使用该对象多次有效地执行该语句

请记住,在重复使用之前,请始终呼叫:

PreparedStatement pstmt = conn.preparedStatement(
        "INSERT INTO counts (counter) VALUES (?)"); 
while (i < 100) {
    pstmt.clearParameters();
    pstmt.setInt(1, ++i);
    pstmt.executeUpdate();
}

建议使用第二个代码。PreparedStatement旨在重复使用。阅读下面的内容:

SQL语句被预编译并存储在PreparedStatement对象中。然后可以使用该对象多次有效地执行该语句

请记住,在重复使用之前,请始终呼叫:

PreparedStatement pstmt = conn.preparedStatement(
        "INSERT INTO counts (counter) VALUES (?)"); 
while (i < 100) {
    pstmt.clearParameters();
    pstmt.setInt(1, ++i);
    pstmt.executeUpdate();
}

但是这样使用它是明智的,还是我们更喜欢批量更新呢?@Batshray这个问题毫无意义。这不是一个或另一个问题。使用批处理更新还需要重新使用该语句。@EJP,感谢您的回复。事实上,我误解了这个问题。但是这样使用它是明智的,还是我们更喜欢批量更新呢?@Batshray这个问题没有意义。这不是一个或另一个问题。使用批处理更新还需要重新使用该语句。@EJP,感谢您的回复。事实上,我误解了这个问题。这就是准备发言的全部要点。第二种选择是正确的选择。这就是准备好的报表的全部要点。第二个选项是正确的方法。如果要再次设置所有参数值,则调用clearParameters并不是必需的。如果要再次设置所有参数值,则调用clearParameters并不是必需的。