下面是关于如何使用MybatisPlus实体类中字段映射MySQL中JSON格式的完整攻略。
1. 引入依赖
在pom.xml中加入以下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
其中${mybatis-plus.version}
和${fastjson.version}
是需要自行定义的版本号。
2. 配置实体类中JSON字段转换
MybatisPlus提供了默认的JSON转换方式,但是需要在配置中注册JsonTypeHandler
。
@Configuration
public class MybatisPlusConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return new MybatisPlusCustomizers();
}
/**
* 注入JSON类型处理器
*/
@Bean
public TypeHandler<BaseBean> jsonTypeHandler() {
return new JsonTypeHandler<>(BaseBean.class);
}
}
上述代码中的BaseBean
是创建实体类时要继承的基类,用于确保转换器能够处理子类中的JSON字段。
3. 在实体类中使用JSON字段
在实体类的成员变量上使用@TableField(typeHandler = JsonTypeHandler.class)
注解即可。
示例1:
@Data
public class User extends BaseBean {
@TableField(typeHandler = JsonTypeHandler.class)
private Map<String, Object> extendInfo;
}
在上述示例中,Map
对象extendInfo
中的所有数据都会被序列化为JSON格式存储到数据库中。
示例2:
@Data
public class Goods extends BaseBean {
@TableField(typeHandler = JsonTypeHandler.class)
private List<String> images;
}
在上述示例中,List
对象images
中的所有数据都会被序列化为JSON格式存储到数据库中。
4. 小结
以上就是使用MybatisPlus实体类中字段映射MySQL中JSON格式的完整攻略,需要注意的是,JSON的结构会影响到MySQL中的存储方式。如果实体类中有多个JSON字段,则只需要在每个字段上使用@TableField(typeHandler = JsonTypeHandler.class)
注解即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis plus实体类中字段映射mysql中的json格式方式 - Python技术站