我想执行一些看起来像这样的SQL代码(在MySQL上)(它不是存储过程):
START TRANSACTION;
INSERT...;
SELECT...;
COMMIT;
如何使用Spring模板进行操作? 当我尝试使用JdbcTemplate时,似乎Spring不理解查询。
使用Spring模板时,是否不允许从SQL代码启动事务?
使用Spring模板时,我可以在使用存储过程时从SQL代码启动事务吗?
答案 0 :(得分:2)
看一下Spring TransactionTemplate
,这是在使用JDBC模板时进行事务的最佳方式(参见official docs):
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
jdbcTemplate.update("INSERT INTO PERSON (FIRSTNAME, LASTNAME) VALUES(?,?)",
new Object[] { firstName, lastName });
... multiple calls to JDBC template, all inside the same transaction ....
}
});