myBatis3批量修改查询操作

配置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或者数组的形式暴露出来好了,

短信你了 :)