Mybatis-Plus读写Mysql的Json字段的操作代码

目录
  • 前置条件
  • 一、新建mysql表增加json字段
  • 二、pojo类
  • 三、测试类

前置条件

确保mysql的版本是5.7+

一、新建mysql表增加json字段

二、pojo类

package com.cxstar.domain;

import com.alibaba.fastjson.JSONObject;
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.FastjsonTypeHandler;
import java.io.Serializable;
import java.util.Date;
@lombok.Data
@TableName(autoResultMap = true)
public class Data implements Serializable {
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;       

	// 部分字段省略-------------
    private String title;
    private String author;
    private String publisher;
    // -----------------------
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONObject aggJson;
}

三、测试类

package com.cxstar;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cxstar.domain.Data;
import com.cxstar.domain.SearchMsg;
import com.cxstar.mapper.DataMapper;
import com.cxstar.service.OrderService;
import com.cxstar.service.spider.impl.*;
import com.cxstar.service.utils.ExecutorThread;
import com.cxstar.service.utils.SpiderThread;
import com.cxstar.service.utils.SynContainer;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.ArrayList;
import java.util.Date;
import java.util.UUID;
@SpringBootTest
class OrderApplicationTests {
    @Autowired
    DataMapper dataMapper;
    @Test
    void testJson() {
		// insert -----------------------------------
        Data data = new Data();
        data.setTitle("计算机安全技术与方法");
        data.setPublisher("<<计算机技术>>编辑部出版");
        JSONObject jb = new JSONObject();
        jb.put("searchKey", "英格");
        jb.put("curPage", "1");
        JSONArray js = new JSONArray();
        js.add("西北政法大学");
        js.add("西安理工大学");
        jb.put("source", js);
        data.setAggJson(jb);
        dataMapper.insert(data);
        // ------------------------------------------
        // select --------------------------------------
        Data data1 = dataMapper.selectById(5837);
        JSONObject jb2 = data1.getAggJson();
        System.out.println(jb2.getJSONArray("source"));
        // ---------------------------------------------

		// group by -----------------------------------------------
		LambdaQueryWrapper<Data> lqw = new LambdaQueryWrapper<>();
        lqw.select(Data::getAggJson);
        lqw.groupBy(Data::getAggJson);
        List<Data> dataList = dataMapper.selectList(lqw);
        System.out.println(dataList);
        // --------------------------------------------------------
    }
}

到此这篇关于Mybatis-Plus读写Mysql的Json字段的文章就介绍到这了,更多相关Mybatis-Plus Json字段内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MybatisPlus如何自定义TypeHandler映射JSON类型为List

    目录 自定义TypeHandler映射JSON类型为List 1. 实体类 2. ListTypeHandler 3. ReportUserListTypeHandler 4. Java 泛型 自定义TypeHandler的使用笔记 类型转换器还可以通过注解配置 java类型和jdbc类型 定义 使用 自定义TypeHandler映射JSON类型为List 1. 实体类 这里只展示需要映射的字段,分别在所需映射的字段和实体类上添加注解. @Data @TableName(value = "rep

  • mybatis-plus读取JSON类型的方法实现

    摘要:mybatis-plus读取JSON类型. 本文总共三个步骤: 1.在数据库表定义JSON字段: 2.在实体类加上@TableName(autoResultMap = true).在JSON字段映射的属性加上@TableField(typeHandler = FastjsonTypeHandler.class): 3.建一些业务代码进行测试: 在数据库表定义JSON字段 CREATE TABLE `extra_info` ( `id` int(10) NOT NULL AUTO_INCRE

  • mybatis plus实体类中字段映射mysql中的json格式方式

    目录 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 2.那么取出时怎么进行映射呢,有分为两种情况 mybatis-plus 实体 json 处理 本文总共三个步骤 mybatis plus实体类中字段映射mysql中的json格式 1.实体类中有个属性是其他对象 或者是List:在数据库中存储时使用的是mysql的json格式,此时可以用mybatis plus的一个注解 @TableField(typeHandler = JacksonTy

  • Mybatis-Plus读写Mysql的Json字段的操作代码

    目录 前置条件 一.新建mysql表增加json字段 二.pojo类 三.测试类 前置条件 确保mysql的版本是5.7+ 一.新建mysql表增加json字段 二.pojo类 package com.cxstar.domain; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.

  • MySQL中json字段的操作方法

    MySQL5.7.8中引入了json字段,这种类型的字段使用的频率比较低,但是在实际操作中,有些业务仍然在用,我们以此为例,介绍下json字段的操作方法: 还是从例子看起: mysql> create table test1(id int,info json); Query OK, 0 rows affected (0.02 sec) mysql> insert into test1 values (1,'{"name":"yeyz","age

  • mysql根据json字段内容作为查询条件(包括json数组)检索数据

    最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的json数据,遇到想根据里面的json的字段内容作为条件查询的情况 mysql根据json字段的内容检索查询数据 使用 字段->'$.json属性'进行查询条件 使用json_extract函数查询,json_extract(字段,"$.json属性") 根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性'

  • MySQL中JSON字段数据类型详解

    目录 前言 创建JSON值 搜索JSON类型数据 在 JSON 和非 JSON 值之间转换 JSON 值的汇总 总结 前言 JSON 类型是从 MySQL 5.7 版本开始支持的功能,MySQL 支持由RFC 7159定义的本机JSON数据类型,该类型可有效访问 JSON(JavaScript 对象 table 示法)文档中的数据.与将 JSON 格式的字符串存储在字符串列中相比,JSON数据类型具有以下优点: 自动验证存储在JSON列中的 JSON 文档.无效的文档会产生错误. 优化的存储格式

  • MySQL为JSON字段创建索引方式(Multi-Valued Indexes 多值索引)

    目录 多值索引简介 创建多值索引 JSON对象字段索引 JSON数组对象索引 在组合索引中创建多值索引 多值索引的局限 应用场景 多值索引简介 从MySQL 8.0.17 开始, InnoDB支持创建多值索引(Multi-Valued Indexes),该索引是在JSON存储值数组的列上定义的二级索引,对于单个数据记录可以有多个索引记录.此类索引特定的语法定义: CAST(expression AS type ARRAY),例如CAST(data->'$.zipcode' AS UNSIGNED

  • 新的Java访问mysql数据库工具类的操作代码

    这是之前软工课设我写的java访问mysql工具类,它经过了多轮的测试,应该能够适应大多数的操作需求.比之前大二写的更鲁棒,更易用. package util; import java.lang.reflect.Field; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.swing.

  • MybatisPlus如何处理Mysql的json类型

    目录 MybatisPlus处理Mysql的json类型 MyBatis Plus - xml中如何使用autoResultMap构造的ResultMap MyBatis-Plus - JacksonTypeHandler VS FastjsonTypeHandler MybatisPlus读写Mysql的json字段 前置条件 一.新建mysql表增加json字段 二.pojo类 三.测试类 MybatisPlus处理Mysql的json类型 1.在数据库表定义JSON字段: 2.在实体类加上

  • MybatisPlus保存、读取MySQL中的json字段失败问题及解决

    目录 MybatisPlus保存.读取MySQL的json字段失败 场景 解决方案 Mybatis插入MySQL的json字段报错 解决办法 MybatisPlus保存.读取MySQL的json字段失败 场景 mybatis-plus保存mysql数据库,有字段为json,在java中定义字段为String,但是在保存的时候,json数据没有入库,为空,代码执行未报错. 解决方案 直接用对应的Object来做映射,然后增加对应的@TableField注解 @Data public class U

  • mysql中取出json字段的小技巧

    目录 mysql取出json字段技巧 mysql中使用函数JSON_EXTRACT() spark sql中使用get_json_object() mysql取json,在不知道key情况下,取他的value详细值 mysql取出json字段技巧 有时候会将一些信息以json形式存在数据库中,如果太长的话,在取的过程中sql运行会比较慢,如果只取某些键值的话会比较浪费 mysql中使用函数JSON_EXTRACT() ±-±------------------------------------

  • MySQL中的JSON字段List成员检查

    目录 JSON字段List成员检查 MySQL中JSON字段操作 基本改变 Json函数 JSON字段List成员检查 文档 https://dev.mysql.com/doc/refman/8.0/en/json.html https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html 方法 JSON_CONTAINS(target, candidate[, path]) value MEMBER OF(json_array

随机推荐