Java 如何将Spring jdbcTemplate中的数组/列表设置为参数?
我有一个带有许多占位符“?”的SQL查询,它是动态生成的,我想用一个值数组来替换占位符。数组的大小每次都可能不同。数组按顺序由所有参数组成Java 如何将Spring jdbcTemplate中的数组/列表设置为参数?,java,sql,spring,jdbc,Java,Sql,Spring,Jdbc,我有一个带有许多占位符“?”的SQL查询,它是动态生成的,我想用一个值数组来替换占位符。数组的大小每次都可能不同。数组按顺序由所有参数组成 return jdbcTemplate.query(Queries.someQuery, new Object[] {/* Array must be here */}, new ResultSetExtractor<List<String>>() { @Override public
return jdbcTemplate.query(Queries.someQuery,
new Object[] {/* Array must be here */},
new ResultSetExtractor<List<String>>() {
@Override
public List<String> extractData(ResultSet resultSet)
}
});
返回jdbcTemplate.query(querys.someQuery,
新对象[]{/*数组必须在此处*/},
新的resultSetTextRactor(){
@凌驾
公共列表提取数据(结果集结果集)
}
});
sql生成的示例:
for (int j = 0; j < y; j++) {
conditionsBuilder.append("\n and p"+i+".object_id=o.object_id\n" +
" and p"+i+".attr_id =?\n" +
" and p"+i+".value =?\n");
tablesBuilder.append(",patameters p"+i+" ");
i++;
}
for(int j=0;j
使用数组列表
:
ArrayList<Object> values = new ArrayList<>;
然后将其转换为数组:
return jdbcTemplate.query(query, values.toArray(), resultSetExtractor);
作为一个衬里使用:
return jdbcTemplate.query(query, Lists.newArrayList(v1, v2).toArray(), rse);
return jdbcTemplate.query(query, Lists.newArrayList(v1, v2).toArray(), rse);