Spring JdbcTemplate 查询绑定list参数

如何绑定list参数进行查询List<String>list;select*fromtabletwheret.namein(:list);解决再加100分... 如何绑定list参数进行查询
List<String> list ;

select * from table t where t.name in (:list);

解决再加100分
展开
 我来答
caesar1800
2011-09-01 · 超过25用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:79.3万
展开全部
HashMap<String,List> paramMap = new HashMap<String,List>();
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暗夜de忧伤
2011-08-30 · TA获得超过1936个赞
知道小有建树答主
回答量:995
采纳率:75%
帮助的人:970万
展开全部
写为代码吧

首先通过JdbcTemplate创建Query对象:
Query query = ...;
query.setParameterList("list",list);
List 结果集 = query.list();
追问
你把...那写出来我看看.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老油条精选
2011-08-30 · TA获得超过147个赞
知道答主
回答量:108
采纳率:0%
帮助的人:85.1万
展开全部
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());
}

查询也是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式