配置UserMapper.xml文件里的内容:
select * from t_user where f_pkid in(${pkId});
update t_user set f_isdeleted = 'Y' where f_pkid in
#{pkId}
得到的参数是31,32,33形式的字符串,
第一种如果是#{}这种形式传参的话,参数外自动加上了单引号,只能查询一个。第二种${}这种形式也不对给不了参数 , 后面这种形式加foreach节点collection属性的值我又不知道怎么传 我用的是mybatis3版本 哪位朋友帮忙解决一下
接口内容是:
public List selectUser(String pkId);
public void alterUser(String pkId);
很可能是因为生命的参数类型 parameterType="String"的
这样传进来的参数,就自动被加上引号了。
第二种的foreach,应该是对可 iterable 作迭代的。但是你传入的是String,就不能迭代了。
可以使用parameterType="java.util.list",然后在对应的实现类中,将String转成相应的list。
[quote]
你有这方面得代码吗,关于java类得,怎么将String转成相应的list啊
[/quote]
按照你的情况,就是解析String,将每个项加入到一个list。
比如
[code="java"]
String s = "a,b,c";
String[] sarray = s.split(",");
List list = Arrays.asList(sarray);
[/code]
不过还是建议考虑接口是以list或者数组的形式暴露出来好了,
短信你了 :)