• Mybatis-Plus关于MYSQL中JSON字段的操作


    Mybatis-Plus关于MYSQL中JSON字段的操作

    首先JSON字段是在Sql5.7+版本才适用的,各位小伙伴在使用时一定要关注自己的MySql版本哦!!!

    1. Mysql 相关字段
    在这里插入图片描述
    2. 相关字段插入的JSON内容
    在这里插入图片描述

    3. 修改对应实体类

    内容三中我们相关的两个字段是在mysql中是json类型,为了我们方便操作我们可以自定义封装对象来为我们的JSON字段进行接收和传递。下面的两个字段公用了一个类型的封装对象,如下:PremaritalAndPremaritalInfo。这里我们就可以写成静态类封装到当前实体类下,也可以单独写一个类进行封装。

    在我们关注的实体类中有两个注解中的属性是我们关注的:
    @TableName(value = “t_ppaal”,autoResultMap = true)
    autoResultMap = true:自动匹配我们mapper.xml中resultmap的映射。

    @TableField(value = “premarital”, typeHandler = JacksonTypeHandler.class)
    typeHandler = JacksonTypeHandler.class:因为这里是Json类型的字段接收,我们为其添加一个Json类型的TypeHandler,TypeHandler是MybatisPlus中的字段处理器。我们使用它就可以解决实体类属性与表字段的处理。

    @Data
    @EqualsAndHashCode(callSuper = true)
    @AllArgsConstructor
    @NoArgsConstructor
    @TableName(value = "t_ppaal",autoResultMap = true)
    public class Ppaal extends BaseEntity implements Serializable {
    	/**
    	/**
    	 * 婚前检出疾病分类 HQ003
    	 */
    	@TableField(value = "premarital", typeHandler = JacksonTypeHandler.class)
    	@ApiModelProperty(value = "婚前检出疾病分类HQ003")
    	private PremaritalAndPremaritalInfo premarital;
    
    	/**
    	 * 孕前风险因素 HQ004
    	 */
    	@TableField(value = "progestation", typeHandler = JacksonTypeHandler.class)
    	@ApiModelProperty(value = "孕前风险因素HQ004")
    	private PremaritalAndPremaritalInfo progestation;
    	/**
    	 * 对json字段的封装
    	 */
    	@Data
    	public static class PremaritalAndPremaritalInfo implements Serializable {
    		private List woman;
    		private List man;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    4. 修改对应mapper.xml

    这里需要修改的是jdbcType、typeHandler、javaType如果没有就添加一下好了
    首先修改对应的typeHandler,这里要和实体类中的一样。
    设置javaType,javaType中就是我们封装的实体因为是封装在了实体内部可以用$符号定义出来
    jdbcType,因为jdbcType中是没有对应Json的类型。所以我们就自定义了接收Json类型的对象,因为是Java语言所以jdbcType我们就定义为JAVA_OBJECT.

    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    此篇内容为工作中遇到的问题,也是不断打怪升级的过程,希望各位看官都多交流并提出宝贵的建议。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    springcloud4:服务注册中心Eureka
    【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-私信列表
    FastAPI学习-22.response 异常处理 HTTPException
    MySQL8 间隙锁在11种情况下的锁持有情况分析
    Jenkins - Copy Artifact 插件 Build 之间数据共享传递
    人工智能将如何改变敏捷项目管理?
    Java笔记:Java虚拟机的指令
    D. Count GCD(数论/gcd/素数筛/容斥)
    【重温基础算法】内部排序之桶排序法
    Java编程技巧:if-else优化实践总结归纳
  • 原文地址:https://blog.csdn.net/jiong9412/article/details/126112848