JDBC中如何进行事务处理

2025-05-30 14:14:03

1、在jdbc中,默认事务是自动提交的,如果我们需要自己事务,我们代码需要手工控制事务的提交。package 艘早祓胂com.gwolf;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JdbcTest { public static void main(String[] args) { Connection conn=null; Statement stmt=null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:jdbctest", "test", "test"); conn.setAutoCommit(false); stmt = conn.createStatement(); stmt.addBatch("insert into dept values (51, '500', 'ccc')"); stmt.addBatch("insert into dept values (52, '600', 'ddd')"); stmt.addBatch("insert into dept values (53, '700', 'eee')"); stmt.executeBatch(); conn.commit(); conn.setAutoCommit(true); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); try { if(conn != null) { conn.rollback(); conn.setAutoCommit(true); } } catch (SQLException e1) { e1.printStackTrace(); } }finally { if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }}

JDBC中如何进行事务处理

2、如果要手动控制事务,我们必须把jdbc自动提交事务关闭:conn.setAutoCommit(false);

JDBC中如何进行事务处理

3、接下来我们手动提交事务:conn.commit(); conn.setAutoCommit(true);

JDBC中如何进行事务处理

4、在异常处理中回滚整个事务。

JDBC中如何进行事务处理

5、切记一点,一定要在finally块中关闭数据库连接,释放资源。if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }

JDBC中如何进行事务处理

6、我们烂瘀佐栾这个事务业务代码如下:conn.setAutoCommit(false); stmt = conn.cr髫潋啜缅eateStatement(); stmt.addBatch("insert into dept values (541, '5020', 'c5cc')"); stmt.addBatch("insert into dept values (542, '6020', 'd5dd')"); stmt.addBatch("insert into dept values (534, '7020', 'e5ee')"); stmt.executeBatch(); conn.commit(); conn.setAutoCommit(true);

JDBC中如何进行事务处理
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢