首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jdbcTemplate在一个批处理中执行多个sql语句

问jdbcTemplate在一个批处理中执行多个sql语句
EN

Stack Overflow用户
提问于 2016-11-09 18:22:55
回答 1查看 13.8K关注 0票数 3

我正在为我的DAO层使用Spring jdbcTemplate。而且我希望在一个查询中执行至少两条sql语句,以便一次命中数据库:

代码语言:javascript
复制
String INSERT_SQL = "INSERT INTO \"ADDRESS\" (id_registred_user, "
                                           + "address, "
                                           + "city, "
                                           + "region, "
                                           + "country) "
                                           + "VALUES (?, ?, ?, ?, ?)";

String UPDATE_SQL = "UPDATE \"REGISTRED_USER\" SET id_address = ? "
                  + "WHERE id_registred_user = ?";

现在,我在@Transactional中做这件事:

代码语言:javascript
复制
jdbcTemplate.update(INSERT_SQL, args...);
jdbcTemplate.update(UPDATE_SQL, args...);

我知道在简单的jdbc中有一个addBatch()方法,但是如何使用jdbcTemplate在单个批处理中执行这两个sql语句呢?jdbcTemplate中是否有addBatch()等效项?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-11-09 18:26:33

您可以连接这两个查询并添加;作为分隔符,但这不会使这些查询成为“原子”。换句话说,它们不会像你想象的那样立即执行,而是一个接一个地执行,就像你一个接一个地执行两个模板一样--这里没有区别。

为了保证操作原子性,您必须使用事务。事务可以使查询所做的所有更改在事务提交时立即应用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40504655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档