Spring手动事务

//1.获取连接池对象

        DataSource dataSource = JDBCUtils.getDataSource();

        //2.创建jdbcTemplate实例

        JdbcTemplate template = new JdbcTemplate(dataSource);

        //3.启动事务管理器(将conn和当前线程做绑定)

        TransactionSynchronizationManager.initSynchronization();

        //4.获取连接 : 获取JdbcTemplate所使用的连接对象 

        Connection conn = DataSourceUtils.getConnection(dataSource);

        try {

            //5.将连接的事务,设置为手动事务提交

            conn.setAutoCommit(false);

            //===== 业务处理

            //=====

            // 提交事务

            conn.commit();

        } catch (Exception e) {

            e.printStackTrace();

            // 事务回顾

            try {

                conn.rollback();

            } catch (SQLException e1) {

                e1.printStackTrace();

            }

            // 将异常抛给调用者,告知执行失败

            throw e;

        } finally {

            // 将conn对象和当前线程解除绑定

            TransactionSynchronizationManager.clearSynchronization();

            // 修改为自动事务提交

            try {

                conn.setAutoCommit(true);

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

你可能感兴趣的:(Spring手动事务)