微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一个Statement对象,多个executeUpdate

如何解决一个Statement对象,多个executeUpdate

| 建议仅创建一个Statement对象并对其执行多个executeUpdate()吗?
// Vantages/drawbacks of this solution?
conn.setAutocommit(false);

Statement stmt = conn.createStatement();
stmt.executeUpdate(\'[ANY_INSERT_sql]\');
stmt.executeUpdate(\'[ANY_INSERT_sql]\');
stmt.executeUpdate(\'[ANY_INSERT_sql]\');

conn.commit();
还是最好为每个executeUpdate一个Statement对象:
// 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类并且经常使用它,但是我对Statement的用法存有疑问。     

解决方法

        基于javadoc,一条语句只能有一个关联的“ 2”对象。   用于执行静态的对象   SQL语句并返回   它产生的结果。      默认情况下,只有一个ResultSet对象   每个Statement对象可以在以下位置打开   同时。因此,如果   读取一个ResultSet对象是   与阅读的交错   另一个,每个必须已经生成   通过不同的Statement对象。所有   语句中的执行方法   界面隐式关闭一个   语句的当前ResultSet对象,如果   一个开放的存在。 http://download.oracle.com/javase/1.4.2/docs/api/java/sql/Statement.html 如果您需要同时处理多个结果集,也许可以使用更多的语句。 您可能只需要使用其中之一就可以了。 在性能方面,可能会更好,因为它可以保持较少的活动资源。     ,        没关系,只需确保关闭所有语句对象即可。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。