MySQL 8.0 JSON数据类型与MyBatis结合使用

前言

MYSQL 8.0 JSON数据类型基础应用


1.表

CREATE TABLE `tk_test_json` (
  `id` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `no` varchar(100) DEFAULT NULL,
  `users` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

2.程序

@Data
@TableName(value="tk_test_json",autoResultMap = true)
public class TestDO {

    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    private  String no;


    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<TestUserDO> users;

}

@Data
public class TestUserDO {

    private String id;

    private String mail;

    private Boolean success;

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xxx.TestExtraMapper">

    <resultMap type="xxx.entity.TestDO" id="BaseResultMap">
        <result property="id" column="id" jdbcType="VARCHAR"/>
        <result property="no" column="no" jdbcType="VARCHAR"/>
        <result property="users" column="users" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>

    </resultMap>

    <select id="selectAll" resultMap="BaseResultMap">
        select * from tk_test_json
    </select>

    <select id="conditionSelect" resultMap="BaseResultMap">
        select * from hr_pana_ticket_new.tk_test_json ttj where ttj.users <![CDATA[->>]]> '$[*].id' like '%-9d4e-0ff1063e9%'
    </select>

</mapper>


如果使用Mybatis Plus ,一定要使用autoResultMap = true,否则,mybatis plus 查询返回的JSON对应为null。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拥有必珍惜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值