Spring JDBC 模板条件插入
我正在尝试编写一个基于Java参数的条件批量插入,例如
List<Object[]> params = new ArrayList();
params.add(new Object[]{1, 2, 3});
getSimpleJdbcTemplate.batchUpdate(
"INSERT INTO SomeTable( colA, colB, colC)" +
" VALUES(?, ?, ?)" +
" WHERE EXISTS ( // some condition )", params);
这显然不起作用,我发现的最接近的例子涉及 从表中选择 INSERT 值,而不是我需要的列表参数。如何引用 Object[] 参数作为 INSERT 值的一部分?
谢谢。
I am trying to write a conditional batch insert based on Java Parameters, for example
List<Object[]> params = new ArrayList();
params.add(new Object[]{1, 2, 3});
getSimpleJdbcTemplate.batchUpdate(
"INSERT INTO SomeTable( colA, colB, colC)" +
" VALUES(?, ?, ?)" +
" WHERE EXISTS ( // some condition )", params);
This obviously does not work, and the closest example I have found involves
selecting the INSERT values from tables, instead of the List arguments, which is what I need. How can I reference the Object[] parameters as part of the INSERT values?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想说你应该在单独的 SELECT 中移动这个条件。
I'd say that you should move this condition in a separate SELECT.
作为您的示例,您应该尝试以下语法和 SimpleJdbcOperations.update 方法:
此外,我一直在使用 StringTemplate 用于生成动态 SQL。这是我用过的最好的语言。
例如(作为 StringTemplate 语法):
As your example, you should try following syntax and the SimpleJdbcOperations.update method:
Additionally, I've been using StringTemplate for generation of dynamic SQL. It's the best language I ever use.
for Example(As StringTemplate Syntax):