我可以请求JDBCTemplate扩展list参数以用于in()子句吗?

roy*_*yal 9 java spring jdbc spring-jdbc

我可以这样做:

select * from mytable m where m.group_id in (?)
Run Code Online (Sandbox Code Playgroud)

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

select * from mytable m where m.group_id in (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

具体来说,我使用的是Spring和JdbcTemplate/SimpleJdbcTemplate类.

小智 26

您可以使用NamedParameterJdbcTemplate来完成此操作.

使用您的示例,它将类似于:

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

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


The*_*ist 5

对不起,不能那样做.你可以自己写一个方便的方法来做到这一点,但setParameterList()据我所知,并不像Hibernate.