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<String> woman;
		private List<String> man;
	}
}

4. 修改对应mapper.xml

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

<result column="premarital" jdbcType="JAVA_OBJECT" property="premarital"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
javaType="com.esmooc.life.marriage.entity.Ppaal$PremaritalAndPremaritalInfo"/>

<result column="progestation" jdbcType="JAVA_OBJECT" property="progestation"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
javaType="com.esmooc.life.marriage.entity.Ppaal$PremaritalAndPremaritalInfo"/>

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值