mybatis-plus读取JSON类型并处理JSON中数据

本文介绍了如何使用mybatis-plus读取和处理MySQL中的JSON类型数据,包括在数据库表定义JSON字段,实体类的注解配置,如使用@TableField和typeHandler,以及相关的业务代码实现,包括dao、service、serviceImpl、工具类和mapper.xml的详细步骤。
摘要由CSDN通过智能技术生成

mybatis-plus读取JSON类型

本文总共三个步骤:
1、在数据库表定义JSON字段;
2、在实体类加上@TableName(value = “extra_info”, autoResultMap = true)、在JSON字段映射的属性加上
@TableField(typeHandler = JacksonTypeHandler.class);

@TableField(typeHandler = ObjectAndJsonHandler.class);
3、建一些业务代码进行测试;

在数据库表定义JSON字段

DROP TABLE IF EXISTS `extra_info`;
CREATE TABLE `extra_info`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `extra_json` json NULL,
  `extra_object` json NULL,
  `extra_list` json NULL,
  `extra_array` json NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

INSERT INTO `extra_info` VALUES (1, '{\"id\": 6, \"name\": \"7\"}', '{\"id\": 1, \"name\": \"2\"}', '[{\"id\": 1, \"name\": \"2\"}, {\"id\": 2, \"name\": \"3\"}]', '[{\"id\": 1, \"name\": \"2\"}, {\"id\": 4, \"name\": \"5\"}]');

实体类处理

在实体类加上@TableName(value = "extra_info", autoResultMap = true)、在JSON字段映射的属性加上@TableField(typeHandler = JacksonTypeHandler.class),@TableField(typeHandler = ObjectAndJsonHandler.class) JacksonTypeHandler为mybatisplus自带,ObjectAndJsonHandler自定义;

ExtraInfo,ExtraNode

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.util.ObjectAndJsonHandler;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@TableName(value = "extra_info", autoResultMap = true)
public class ExtraInfo implements Serializable {
   

    @TableId(type = IdType.AUTO)
    private Integer id;

    @TableField(typeHandler = JacksonTypeHandler.class)
    private ExtraNode extraObject;

    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONObject extraJson;

    @TableField(typeHandler = ObjectAndJsonHandler.class)
    private List<ExtraNode> extraList;

    @TableField(typeHandler = JacksonTypeHandler
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值