mybatis-plus读取JSON类型的方法实现
摘要:mybatis-plus读取JSON类型。
本文总共三个步骤:
1、在数据库表定义JSON字段;
2、在实体类加上@TableName(autoResultMap=true)、在JSON字段映射的属性加上@TableField(typeHandler=FastjsonTypeHandler.class);
3、建一些业务代码进行测试;
在数据库表定义JSON字段
CREATETABLE`extra_info`( `id`int(10)NOTNULLAUTO_INCREMENTPRIMARYKEY, `extra_object`jsonNULL, `extra_list`jsonNULL, `extra_array`jsonNULL ); INSERTINTO`extra_info`VALUES(1,'{\"id\":1,\"name\":\"2\"}','[{\"id\":1,\"name\":\"2\"}]','[{\"id\":1,\"name\":\"2\"}]');
在实体类加上@TableName(autoResultMap=true)、在JSON字段映射的属性加上@TableField(typeHandler=FastjsonTypeHandler.class)
importcom.baomidou.mybatisplus.annotation.IdType; importcom.baomidou.mybatisplus.annotation.TableField; importcom.baomidou.mybatisplus.annotation.TableId; importcom.baomidou.mybatisplus.annotation.TableName; importcom.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; importjava.io.Serializable; importjava.util.List; @TableName(autoResultMap=true) publicclassExtraInfoimplementsSerializable{ @TableId(type=IdType.AUTO) privateIntegerid; @TableField(typeHandler=FastjsonTypeHandler.class) privateExtraNodeextraObject; @TableField(typeHandler=FastjsonTypeHandler.class) privateListextraList; @TableField(typeHandler=FastjsonTypeHandler.class) privateExtraNode[]extraArray; publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicExtraNodegetExtraObject(){ returnextraObject; } publicvoidsetExtraObject(ExtraNodeextraObject){ this.extraObject=extraObject; } publicList getExtraList(){ returnextraList; } publicvoidsetExtraList(List extraList){ this.extraList=extraList; } publicExtraNode[]getExtraArray(){ returnextraArray; } publicvoidsetExtraArray(ExtraNode[]extraArray){ this.extraArray=extraArray; } }
建一些业务代码进行测试
importjava.io.Serializable; publicclassExtraNodeimplementsSerializable{ privateIntegerid; privateStringname; publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } }
importcom.baomidou.mybatisplus.core.mapper.BaseMapper; importorg.springframework.stereotype.Repository; @Repository publicinterfaceExtraInfoMapperextendsBaseMapper{ } importcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.web.bind.annotation.GetMapping; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.RestController; importjava.util.List; @RestController @RequestMapping("/test") publicclassTestController{ @Autowired privateExtraInfoMapperextraInfoMapper; @GetMapping publicList listAll(){ returnthis.extraInfoMapper.selectList(newLambdaQueryWrapper<>()); } }
运行结果:
[
{
"id":1,
"extraObject":{"id":1,"name":"2"},
"extraList":[
{"name":"2","id":1}
],
"extraArray":[
{"id":1,"name":"2"}
]
}
]
到此这篇关于mybatis-plus读取JSON类型的方法实现的文章就介绍到这了,更多相关mybatis-plus读取JSON内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!