java - 我可以要求 JDBCTemplate 扩展列表参数以在 in() 子句中使用吗?

标签 java spring jdbc spring-jdbc

<分区>

我可以做这样的事情吗:

select * from mytable m where m.group_id in (?)

... 并传入要扩展到我的参数的参数列表或数组,即:

select * from mytable m where m.group_id in (1,2,3,4)

具体来说,我正在使用 Spring 和 JdbcTemplate/SimpleJdbcTemplate 类。

最佳答案

您可以使用 NamedParameterJdbcTemplate 来完成。

对于您的示例,它会是这样的:

NamedParameterJdbcTemplate db = ...;
List paramList = ...;

Map idsMap = Collections.singletonMap("ids", paramList);
db.query("select * from mytable m where m.group_id in (:ids)", idsMap);

关于java - 我可以要求 JDBCTemplate 扩展列表参数以在 in() 子句中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613881/

相关文章:

java - Junit错误:java. lang.IllegalStateException:无法加载ApplicationContext

java - 如何将日期时间嵌入到 SQL 字符串中

java - Spring Data Elasticsearch 何时支持服务器版本 7.1?

java - 进行 Maven 构建时 Jackson 依赖版本被覆盖

java - 自定义缺少@requestparam 时的错误响应消息

spring restTemplate 来自复杂对象的 POST 参数

mysql - MySQL 中可以选择的行数有限制吗?

java - JDBC 连接适用于 Windows 但不适用于 Ubuntu

jdbc - DB2 JDBC 事务大小有限制吗?

JAVAFX - Windows 权限调用