我想知道是否有一种更优雅的方法可以使用spring的jdbctemplate进行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());
}
这是非常痛苦的,因为如果我有九行代码来构建in()查询的子句。我想要一些类似于准备语句的参数替换
5条答案
按热度按时间jogvjijk1#
需要参数源:
这只适用于
getJdbcTemplate()
返回类型的示例NamedParameterJdbcTemplate
pqwbnv8z2#
我使用SpringJDBC执行“in子句”查询,如下所示:
rmbxnbpk3#
如果出现异常:列类型无效
请使用
getNamedParameterJdbcTemplate()
而不是getJdbcTemplate()
```List foo = getNamedParameterJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)",parameters,
getRowMapper());
ct3nt3jp4#
请参阅此处
使用命名参数编写查询,使用simple
ListPreparedStatementSetter
所有参数按顺序排列。只需添加下面的代码片段即可将传统形式的查询转换为可用参数,x6h2sr285#
自2009年以来,很多事情都发生了变化,但我只能找到答案说您需要使用namedparametersjdbctemplate。
对我来说,如果我只是做一个
使用simplejdbctemplate或jdbctemplate