为了账号安全,请及时绑定邮箱和手机立即绑定

mybatis中如何通过迭代或者循环获取Map的值?

mybatis中如何通过迭代或者循环获取Map的值?

未卜先知 2016-12-22 23:42:42
Map<String,String> params = new HashMap<String,String>(); params.put("command",command); params.put("description",description); messageList = new ArrayList<Message>(); messageList = sqlSession.selectList("Message.queryMessageList",params);我通过页面提交了2个参数,然后把他们放到Map中,在mybatis查询的之后不这个Map作为对象传入那么我在xml中该怎么写?我打算通过<select id="queryMessageList" parameterType="java.util.Map" resultMap="UserResult">   select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1     <foreach collection="params.keys" item="k">  //现在的问题是 这里怎么写,我可以直接通过key迭代么,我现在这样写     //   Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'params.keys'         <if test="${params[${k} 不等于空>             这里还没写完}         </if>     </foreach>
查看完整描述

1 回答

已采纳
?
慕瓜4807886

TA贡献25条经验 获得超9个赞

<foreach collection="relationMap" index="key"  item="value" separator=",">
              
</foreach>
collection为relationMap,index为map的key,item为map的value;#{key},#{value}即可取到这个map集合中的键值

查看完整回答
反对 回复 2016-12-23
  • 未卜先知
    未卜先知
    relationMap 这些类型都是已经定义好的吧?那这个例子中collection="params.keys" 是什么情况,params是传进来的那个map,这里的意思是直接通过key迭代
  • 慕瓜4807886
    慕瓜4807886
    public List<BpmDefUser> getByMap(Map<String,List<Long>> map){ Map<String,Object> params=new HashMap<String, Object>(); params.put("relationMap", map); return this.getBySqlKey("getByMap", params); }这种就是我上面说的那种,你用的那种应该是用于基于mapper的dao开发的,public interface CrawDao { public void saveNewNews(@Param("params")Map<String, String> params); } 类似这样,你可以试下
  • 1 回答
  • 0 关注
  • 6662 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信