”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何通过 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查询?

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

发布于2024-11-16
浏览:496

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());
}

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

使用参数源

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

Set ids = ...;

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

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

NamedParameterJdbcTemplate

请注意,仅当 getJdbcTemplate() 返回 NamedParameterJdbcTemplate 类型的实例时才有效。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3