关于数据源自动提交的设置defaultAutoCommit,当在事务中进行数据库操作时该属性失效,commit由事务管理器接管。
@Autowired
private Dao dao;
@Autowired
private TransactionTemplate transactionTemplate;
...
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
// 需要在事务中执行的逻辑
dao.out("test");
//int i = 1/0;
dao.in("test");
}
});
transactionTemplate指定事务的范围,在事务结束后可能自动commit.
@Autowired
private JdbcTemplate jdbcTemplate;
public void out(String test) {
jdbcTemplate.update("insert into inss(test) values(?)",test);
}
通过JdbcTemplate对象执行数据库有关操作。