本来以为JSON格式数据用起来应该很简单,但实际还挺麻烦,经过很很多踩坑才最终实现查询和插入。
首先说一下我这里的版本号,避免因为环境问题导致不同
mysql:8.0
Mybatis Plus:3.3.2
springboot:2.5.6
一、String作为实体类映射实现数据的查询和插入(不推荐)这种方式非常简单,无需做任何适配,直接写个String字段即可
数据库字段
实体类
这样就可以了
但是这样虽然简单,却有点违背json字段存在的意义。而且需要代码进行序列化和反序列化。所以一般尽量不这样用。
二,使用JSONArray作为字段映射(推荐)这个有多中方案可以实现, 这里仅说一下我用过的最简单的方式
JSONArray作为字段映射,插入和查询时,需要配置的地方不同,所以分插入和查询来介绍
插入:直接使用注解即可
@TableField(typeHandler = FastjsonTypeHandler.class) private JSonArray jobExprience;
我很奇怪为什么一个注解不能同时解决插入和查询问题,既然我插入用的这个Handler可以实现,那么查询的时候理论上也是可以的,但是实际测试却不行,需要另外配置
查询:如果是使用的MP 的baseMapper里自带的方法。那么你就需要在baseResultMap里加上
如果你是自定义查询语句,那么你需要自定义resultMap,并且在resultMap里加上上面那段代码,然后在你的select的resultMap指向你自定义的resultMap,当然也可以直接用baseResultMap。
这样就可以了也不算很复杂。我看还有自定义Handler之类的方法, 就麻烦了, 这里是我试过最简单的方法。



