Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 一个语句对象,多个执行更新_Java_Jdbc - Fatal编程技术网

Java 一个语句对象,多个执行更新

Java 一个语句对象,多个执行更新,java,jdbc,Java,Jdbc,建议只创建一个语句对象并对其执行多个executeUpdate() 对于每个executeUpdate,最好是一个语句对象: // Vantages/drawbacks of this solution? conn.setAutocommit(false); Statement stmt1 = conn.createStatement(); stmt1.executeUpdate('[ANY_INSERT_SQL]'); Statement stmt2 = conn.createStateme

建议只创建一个语句对象并对其执行多个executeUpdate()

对于每个executeUpdate,最好是一个语句对象:

// Vantages/drawbacks of this solution?
conn.setAutocommit(false);

Statement stmt1 = conn.createStatement();
stmt1.executeUpdate('[ANY_INSERT_SQL]');
Statement stmt2 = conn.createStatement();
stmt2.executeUpdate('[ANY_INSERT_SQL]');
Statement stmt3 = conn.createStatement();
stmt3.executeUpdate('[ANY_INSERT_SQL]');

conn.commit();
提前谢谢


PS:我知道PreparedStatement类,而且我经常使用它,但我怀疑的是语句的用法。

没关系,只要确保关闭所有语句对象。

基于javadoc,一个语句只能有一个关联的
结果集
对象

用于执行静态命令的对象 SQL语句并返回 它产生的结果

默认情况下,只有一个ResultSet对象 每语句对象可以在以下位置打开: 同时。因此,如果 正在读取一个ResultSet对象 在阅读的过程中穿插着 另一个,每个都必须已生成 通过不同的语句对象。全部的 语句中的执行方法 接口隐式关闭 Station的当前结果集对象,如果 一个开放的存在

如果您需要同时处理多个结果集,可能需要更多的语句

通常情况下,您只需要使用一个

就性能而言,可能会更好,因为它可以保持较少的资源处于活动状态

// Vantages/drawbacks of this solution?
conn.setAutocommit(false);

Statement stmt1 = conn.createStatement();
stmt1.executeUpdate('[ANY_INSERT_SQL]');
Statement stmt2 = conn.createStatement();
stmt2.executeUpdate('[ANY_INSERT_SQL]');
Statement stmt3 = conn.createStatement();
stmt3.executeUpdate('[ANY_INSERT_SQL]');

conn.commit();