SpringMvc+mybatis手动开启和提交事务

 //获取Spring容器的对象
        WebApplicationContext contextLoader = ContextLoader.getCurrentWebApplicationContext();
        //设置属性的默认属性
        DefaultTransactionDefinition definition = new DefaultTransactionDefinition();
        //设置事务的传播行为,此处是设置为开启一个新事物
        definition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
        //设置事务的隔离级别,此处是读已经提交
        definition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
        //从spring容器对象中获取DataSourceTransactionManager,这个根据配置文件中配置的id名(transactionManager)
        DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) contextLoader.getBean("transactionManager");
        //获取事务状态对象
        TransactionStatus transactionStatus = (TransactionStatus) transactionManager.getTransaction(definition);
      //****开始对数据库操作
         //从账号表中随机获取一个账号
        account = registMapper.getAccountFromTbAccount();
        //在该账号表中删除该账号
        registMapper.deleteAccountByAccountNumber(account);
      //****结束对数据库操作
        //提交事务
        transactionManager.commit(transactionStatus);

你可能感兴趣的:(SpringMvc+mybatis手动开启和提交事务)