首页  >  文章  >  Java  >  如何通过 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查询?

如何通过 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查询?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-25 01:53:10657浏览

How can I effectively use IN() SQL queries with Spring's JDBCTemplate?

使用 Spring 的 JDBCTemplate 进行有效的 IN() SQL 查询

您有一个 IN() 查询,当前需要您构建一个包含多行的子句代码:

StringBuilder jobTypeInClauseBuilder = new StringBuilder();
for(int i = 0; i < jobTypes.length; i++) {
    Type jobType = jobTypes[i];

    if(i != 0) {
        jobTypeInClauseBuilder.append(',');
    }

    jobTypeInClauseBuilder.append(jobType.convert());
}

你寻求一种更优雅的方式,类似于准备语句的参数

使用参数源

要实现您想要的优雅,您可以使用参数源:

Set<Integer> ids = ...;

MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", ids);

List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)",
     parameters, getRowMapper());

NamedParameterJdbcTemplate

请注意,这仅在以下情况下有效getJdbcTemplate() 返回 NamedParameterJdbcTemplate 类型的实例。

以上是如何通过 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn