2014-02-25 59 views
0

我想執行看起來像這樣的一些SQL代碼(在MySQL)(它不是一個存儲過程):Spring模板:如何執行多個SQL語句?

START TRANSACTION; 

INSERT...; 
SELECT...; 

COMMIT; 

我可怎麼辦使用Spring的模板嗎? 當我嘗試使用JdbcTemplate時,它看起來像Spring不理解查詢。

使用Spring模板時,不允許從SQL代碼啓動事務嗎?

當使用Spring模板時,我可以使用存儲過程從SQL代碼啓動事務嗎?

回答

2

看一看春節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 .... 
    } 
}); 
+0

1這是正確的做法 –