【问题标题】:Spring templates: how to execute multiple SQL statements?Spring模板:如何执行多条SQL语句?
【发布时间】:2014-02-25 23:23:29
【问题描述】:

我想执行一些如下所示的 SQL 代码(在 MySQL 上)(它不是存储过程):

START TRANSACTION;  

INSERT...;
SELECT...;

COMMIT;

我如何使用 Spring 模板来做到这一点? 当我尝试使用 JdbcTemplate 时,似乎 Spring 不理解该查询。

使用Spring模板时,不允许从SQL代码开始事务吗?

在使用 Spring 模板时,我可以在使用存储过程时从 SQL 代码启动事务吗?

【问题讨论】:

    标签: mysql sql spring transactions spring-jdbc


    【解决方案1】:

    看看 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 ....
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多