使用 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:
Setids = ...; 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