mybatis + mysql json精准查询

Posted rrz634171

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis + mysql json精准查询相关的知识,希望对你有一定的参考价值。


"productName": "华为MatePad Pro",
"managerAttrs": "\\"code\\":\\"OKs\\"",
"technicalAttrs": "\\"code\\":\\"OK\\"",
"simplePageInfo": 
"pageNum": "1",
"pageSize": "10"

代码:

 List<Map<String, String>> managers = new ArrayList<>();
//.......
if (StringUtils.isNotBlank(queryProductVo.getManagerAttrs()))
JSONObject jsonManager = JSONObject.parseObject(queryProductVo.getManagerAttrs());
Map<String, Object> mapManager = jsonManager;
for (Map.Entry<String, Object> m : mapManager.entrySet()) 
Map<String, String> m1 = new HashMap<>();
m1.put("k", m.getKey());
m1.put("v", String.valueOf(m.getValue()));
managers.add(m1);

productMap.put("managerList", managers);

Page<Map<String, String>> productList = productMapper.queryProductList(productMap);

实体类(部分)字段:

 @ApiModelProperty("技术属性")
private String technicalAttrs;
@ApiModelProperty("管理属性")
private String managerAttrs;
private List<Map<String, String>> technicalAttrList;
private List<Map<String, String>> managerList;

Mapper:

 <if test="technicalAttrList!=null and technicalAttrList!=''">
<foreach collection="technicalAttrList" item="item" index="index" open=" " separator=" " close=" ">
AND TECHNICAL_ATTRS->'$.$item.k' = #item.v
</foreach>
</if>
<if test="managerList!=null and managerList!=''">
<foreach collection="managerList" item="item" index="index" open=" " separator=" " close=" ">
AND MANAGER_ATTRS->'$.$item.k' = #item.v
</foreach>
</if>

以上是关于mybatis + mysql json精准查询的主要内容,如果未能解决你的问题,请参考以下文章

mybatis + mysql json精准查询

Mybatis疑难事件簿:#‘传递布尔值无效问题

springboot2.x+MyBatis-Plus+mysql5.7 动态拼接sql语句 分页查询 自定义sql 查询条件 分组 排序

springboot2.x+MyBatis-Plus+mysql5.7 动态拼接sql语句 分页查询 自定义sql 查询条件 分组 排序

mysql json字段中数值的加减

Mybatis和Mysql的Json类型