jdbc学习----3.数据库事务

    技术2023-08-03  66

    数据库事务

    事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态 事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式,当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久的保存下来,要么数据库管理系统将放弃所做的所有更改,整个事务回滚到最初状态

    JDBC事务处理

    数据一旦被提交,就不可回滚数据什么时候意味着提交? 当一个连接对象被创建时,默认情况下式自动提交事务,每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而且不能回滚关闭数据库连接,数据就会自动的提交,如果多个操作,每个操作使用的是自己单独的连接,则无法保证事务,即同于个事务的多个操作必须在同一个连接下 JDBC程序为了让多个SQL语句作为一个事务执行 调用Connection对象的setAutoCommit(false),以取消自动提交事务 @Test public void txUpdate(){ Connection connection = null; try { connection = JdbcUtils.getConnection(); connection.setAutoCommit(false);//取消自动提交 update1(); update2(); connection.commit();//执行完毕后提交事务 } catch (Exception e) { //出现异常,回滚事务 connection.rollback(); System.out.println(e.getMessage()); }finally { if(connection != null) { connection.close(); } } }

    若此时Connection没有被关闭,还可能被重复使用,则需要恢复期自动提交状态setAutoCommit(true),尤其是使用数据库连接池技术时,执行close()方法前,建议恢复期自动提交状态。 java代码设置数据库隔离级别: connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); //读已提交,可避免脏读

    Processed: 0.009, SQL: 9