当前位置:   article > 正文

mybatisplus如何处理Mysql的Json字段_mybatisplus mysql json字段

mybatisplus mysql json字段

前言

最近业务上遇到需要处理mysql中的Json字段的情况,在此做下记录。

MySql中的Json字段

MySQL里的json分为json array和json object。
$表示整个json对象,在索引数据时用下标(对于json array,从0开始)或键值(对于json object,含有特殊字符的key要用"括起来,比如$.“my name”)。

根据json字段的内容检索查询数据

  • 使用 字段->'$.json属性'进行查询条件
  • 使用json_extract函数查询,json_extract(字段,"$.json属性")
  • 根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性', "内容"))

例如:

SELECT * FROM `msg_content` t where t.extend_data ->'$.lastName' like '%a%'
  • 1

注意:
在field中使用,->在field中使用的时候结果带引号,->>的结果不带引号;
在where条件中使用,->当做where查询是要注意类型的,->>是不用注意类型的。

Mybatis Plus处理Mysql中的Json字段

1.实体类中有属性是其他对象,或者是List;在数据库中存储时使用的是mysql的json格式,此时可以用mybatis plus的一个注解@TableField(typeHandler = JacksonTypeHandler.class),这样在存入是就可以把对象自动转换为json格式

@TableField(typeHandler = JacksonTypeHandler.class)
  • 1

2.那么取出时怎么进行映射呢,有分为两种情况:
a:当没有使用到xml时:

@Data
@TableName(value = "person",autoResultMap = true)
  • 1
  • 2

b:当使用了xml文件时:

<result property="advance" column="advance" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/393791
推荐阅读
相关标签
  

闽ICP备14008679号