TransactionTemplate 簡單使用

/**
 * 事務模板
 * @author zz
 *
 */

public class TransactionTemplateSupport {

	@Autowired
	private PlatformTransactionManager transactionManager;
	
	private TransactionTemplate requiredTransactionTemplate;
	
	protected TransactionTemplate getRequiresNewTransactionTemplate(){
		if (requiredTransactionTemplate == null){
			requiredTransactionTemplate = new TransactionTemplate(transactionManager);
			requiredTransactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED);
		//	requiredTransactionTemplate.setReadOnly(true);
		//	requiredTransactionTemplate.setTimeout(30000);
		}
		
		return requiredTransactionTemplate;
	}

}

@Service
public class TestTransaction extends TransactionTemplateSupport  {

    @Autowired
    private JdbcTemplate jdbcTemplate ;

    @Autowired
    private TransactionTemplate transactionTemplate;

   // @Transactional
    public void test(){

        jdbcTemplate.execute("insert into user value (1,'aaa','aaa','aaa')");

        int i = 1/0;

        jdbcTemplate.execute("insert into user value (2,'aaa','aaa','aaa')");

    }


    public void test2(){

      getRequiresNewTransactionTemplate()
      //  transactionTemplate
                .execute(new TransactionCallback<Void>() {

            @Override
            public Void doInTransaction(TransactionStatus status) {


                jdbcTemplate.execute("insert into user value (11,'BBBB','aaa','aaa')");

                int i = 1/0;

                jdbcTemplate.execute("insert into user value (21,'aaa','NNNN','aaa')");


                return null;
            }
        });
    }


}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章