提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、组装参数
@Test
void jsonArrayTest() {
JSONArray array = new JSONArray();
JSONObject object = new JSONObject();
object.put("prop", "SU_UserName");
object.put("value", "jrj");
array.add(object);
JSONObject object1 = new JSONObject();
object1.put("prop", "SU_RoleId");
object1.put("value", "admin");
array.add(object1);
JSONObject object2 = new JSONObject();
object2.put("prop", "SU_CusId");
object2.put("value", "33");
array.add(object2);
Map map = new HashMap();
map.put("list",array);
sysUserService.selectTest(map);
}
二、mybatis如何写
需求需要判断JSON对象里面的prop属性是否是表字段,如果是对应的列名就拼接查询。注意如果要作为sql的一部分进行查询,需要使用${字段}而不是#{字段}
<select id="selectTest" parameterType="java.util.Map" resultMap="BaseResultMap">
select * from sys_user
<where>
<foreach collection="list" item="user" separator="and">
<if test='user.prop == "SU_UserName" or user.prop == "SU_RoleId"' >
${user.prop} = #{user.value}
</if>
</foreach>
</where>
</select>
总结
mybatis $和#的使用,小伙伴可以注意下。另外JSONArray、List都可以进行foreach遍历。JSONObject对象取值和Map取值一样,都是通过 .属性名取值。