如何通过SQL而非Java方法关闭H2数据库的AUTOCOMMIT?
在H2 JDBC会话中关闭自动提交的方法
1. 通过Java JDBC API调用setAutoCommit(推荐方式)
JDBC规范中,控制自动提交的标准方式是通过Connection对象的setAutoCommit(boolean)方法,这是最通用、符合规范的做法,无需直接操作H2的Session类,代码示例:
Connection conn = DriverManager.getConnection("jdbc:h2:mem:test", "sa", ""); conn.setAutoCommit(false); // 关闭自动提交,进入事务模式
这种方式适配所有遵循JDBC规范的数据库,包括H2,代码的可移植性更强。
2. 使用H2专属SQL语句关闭自动提交
H2支持通过SQL语句直接设置自动提交状态,你可以在JDBC会话中执行以下SQL命令:
SET AUTOCOMMIT OFF;
或者等价写法:
SET AUTOCOMMIT FALSE;
执行后当前会话会关闭自动提交,后续操作会处于未提交的事务中,需要手动执行COMMIT或ROLLBACK来结束事务。
注意:这种语法是H2专属的,不具备跨数据库兼容性,如果你的代码需要适配多种数据库,优先选择JDBC API的方式。
内容的提问来源于stack exchange,提问作者Basil Bourque
相关产品推荐
相关产品推荐

