Spring JdbcTemplate 查询绑定list参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring JdbcTemplate 查询绑定list参数相关的知识,希望对你有一定的参考价值。
如何绑定list参数进行查询
List<String> list ;
select * from table t where t.name in (:list);
解决再加100分
paramMap.put("list",list);
String sql = "select * from table t where t.name in (:list)";
List<MaterialRequistion> mrs = getNamedParameterJdbcTemplate().query(sql,paramMap,BeanPropertyRowMapper.newInstance(结果集对象类名.class));
试试这个,用的是NamedParameterJdbcDaoSupport本回答被提问者和网友采纳 参考技术B 写为代码吧
首先通过JdbcTemplate创建Query对象:
Query query = ...;
query.setParameterList("list",list);
List 结果集 = query.list();追问
你把...那写出来我看看.
参考技术C String str = "";用个循环吧
for(int i=0;i<list.size();i++)
if(0 == i)
str += list.get(i).xxxx;
else
str += "," + list.get(i).xxxx
select * from table t where t.name in (str);追问
这种笨方法已经用过了 加了, 查询会被认为是一个参数
追答在使用SAVE方法的时候,使用了索引参数,意味着吧参数传递给UPDATE的时候,要以正确的顺序列出相应的值。为了避免这种情况,我们可以使用NamedParameterJdbcTemplate.
sql="insert into team (name) values (:name)";
public void save(Team team)
Map parameters = new HashMap();
parameters.put("name",team.getName());
jdbcTemplate.update(sql,parameters);
如果使用SimpleJdbcTemplate可以采用如下方法来保存:
public void save(Team team)
jdbcTemplate.update(sql,team.getName());
查询也是一样的
以上是关于Spring JdbcTemplate 查询绑定list参数的主要内容,如果未能解决你的问题,请参考以下文章
Spring NamedParameterJdbcTemplate 详解 解决jdbcTemplate中 in 参数的问