mysql - Spring 模板: how to execute multiple SQL statements?

标签 mysql sql spring transactions spring-jdbc

我想执行一些如下所示的 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/

相关文章:

javascript - 尝试创建二叉树,但我的下线顺序不正确

mysql - 将 table1 中的多个列合并到 table2 中的一列中

java - 当应用程序再次运行时,值将从数据库中删除

java - 如何判断Java中的 "unused"私有(private)字段是否真的被Spring使用了?

java - 如何在多 Gradle 项目的 JUnit Spring 上下文中加载资源属性?

java - 在包含 1 亿个字符串(无重复字符串)的大型文本文件中进行高效子字符串搜索

mysql - 通过算法为 SQL 中的大型数据集创建列名

php - 为什么我的PHP中的数据不会上传到我的sql服务器?

SQL Case 语句在 where 子句中指定条件?

mysql - 是否有将多对多链接表连接到单个记录的查询?