nlchycg 2011-05-09 10:32
浏览 279
已采纳

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);

  • 写回答

3条回答 默认 最新

  • zavakid 2011-05-09 13:17
    关注

    很可能是因为生命的参数类型 parameterType="String"的
    这样传进来的参数,就自动被加上引号了。

    第二种的foreach,应该是对可 iterable 作迭代的。但是你传入的是String,就不能迭代了。
    可以使用parameterType="java.util.list",然后在对应的实现类中,将String转成相应的list。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页