我想执行一些如下所示的 SQL 代码(在 MySQL 上)(它不是存储过程):
START TRANSACTION;
INSERT...;
SELECT...;
COMMIT;
如何使用 Spring 模板来做到这一点? 当我尝试使用 JdbcTemplate 时,Spring 似乎无法理解该查询。
使用 Spring 模板时,不允许从 SQL 代码启动事务吗?
使用 Spring 模板时,使用存储过程时可以从 SQL 代码启动事务吗?
最佳答案
看看 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 ....
}
});
关于mysql - Spring 模板: how to execute multiple SQL statements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028427/