Spring编程式事务
DataSource txDataSource = jdbcTemplate.getDataSource();
DataSourceTransactionManager txManager = new DataSourceTransactionManager(txDataSource);
final TransactionTemplate txTemplate = new TransactionTemplate(txManager );
txTemplate.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
txTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
txTemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status) {
try {
//业务操作
String sql = "INSERT INTO T_TEST (ID,STATUS) VALUES (?,?)";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
DTO dsd = list.get(i);
ps.setString(1, dsd.getId());
ps.setInt(2, dsd.getStatus());
}
@Override
public int getBatchSize() {
return list.size();
}
});
} catch (Exception e) { //可使用具体业务异常代替
status.setRollbackOnly();
}
return null;
}
});
http://blog.youkuaiyun.com/huazaichang/article/details/9158549