MyBatis动态SQL中Map参数处理

只愿长相守 提交于 2019-12-08 07:04:28

在MyBatis中,如果我们需要传递两个参数,有一种方式是通过Map作为传入参数,在动态SQL中,我们需要对传入的Map参数中的值进行判断,然后进行动态SQL的条件拼接处理。

假设我们有传入参数map如下:

map.put("name",name);
map.put("level",level);

对应的,我们有配置文件如下,可以看到,在test表达式中,我们不用再通过 #,$ 取值符,直接通过键值就可以取到Map中key所对应的值,如下所示:

<select id="findSomethings"  parameterType="hashmap"   resultType="hashmap">
  select name,age,id from user
  where 1 = 1
  <if test="name != null and name!='' "> and name = #{name}</if>
  <if test="level != null and level!='' "> and level= #{level}</if>
</select>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!