java - MyBatis/Ibatis :- Help regarding query in Ibatis/Mybatis

标签 java mysql sql mybatis ibatis

我写了一个查询:-

 <select id="fetchEndPointArn" parameterType="map"   resultType="com.rohit.service.model.UserActive">
     select userid,endpointarns from t_user_actives where sid=#{sid}  
     and (userid in
     <foreach item="userid" index="index" collection="userid" open="(" separator="," close=")">
        #{userid}
     </foreach>
          )
 </select>

我的 DaoImpl:-

@Override
public List<UserActive> fetchEndPointArn(Map<String,String> map) {
    List<UserActive> userActive=sqlSession.selectList("fetchEndPointArn",map);
    return userActive;
}

我传递的 map 包含:-

sid=10,userid=t10,t12

我收到一个异常:-

Error evaluating expression 'userid'.  Return value (t10,t12) was not iterable

最佳答案

将参数类型更改为java.util.Map。将您的集合定义为 collection="list"而不是 collection="userid"。最后让 userid 成为一个像这样的数组列表

List userid = new ArrayList();
userid.add("t10");
userid.add("t12");
Map paramMap = new HashMap();
paramMap.put("sid",10);
paramMap.put("userid",userid);

然后在你的xml中

 <select id="fetchEndPointArn" parameterType="java.util.Map"   resultType="com.rohit.service.model.UserActive">
     select userid,endpointarns from t_user_actives where sid=#{sid}  
     and userid in
     <foreach item="userid" collection="list" index="index" open="(" separator="," close=")">
        #{userid}
     </foreach>
 </select>

关于java - MyBatis/Ibatis :- Help regarding query in Ibatis/Mybatis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38737216/

相关文章:

javascript - 填充数据库字段后禁用提交按钮

mysql - Mysql安全安装所需信息

sql - 如何在 T-SQL 中编写带有 row_number 的 WHERE 子句?

SQL:形成查询时遇到问题

java - 整数.parseInt ("9999999990");

java - 从 JTextField 中获取值并转换为 int

java - 查找时间序列中值的变化

java - 如何滚动锁定 Jface 表查看器?

PHP 取消链接总是失败

python - 将聊天记录存储在关系数据库中