Mybatis-Plus怎么读写Mysql的Json字段
作者:SunnyJourney
时间:2023-04-24
来源:互联网
浏览:0
前置条件确保mysql的版本是5.7+一、新建mysql表增加json字段二、pojo类packagecom.cxstar.domain;importcom.alibaba.fastjson.JSONObject;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.Tabl
前置条件
确保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 lqw = new LambdaQueryWrapper<>();
lqw.select(Data::getAggJson);
lqw.groupBy(Data::getAggJson);
List dataList = dataMapper.selectList(lqw);
System.out.println(dataList);
// --------------------------------------------------------
}
}
作者最新文章
图几
2026-09-16 17:43
SQL中ROUND函数对0.5的处理机制及强制四舍五入方法
2026-09-15 14:19
JS金额计算怎么避免四舍五入误差
2026-09-14 17:32
韩国8月携号转网数据:Galaxy Z8系列iPhone用户转化率约为Z7系列2倍
2026-09-08 17:02
AE基础教程:如何创建合成并制作关键帧动画
2026-09-04 09:27
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















