iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis-plus如何操作json字段
  • 266
分享到

mybatis-plus如何操作json字段

mybatis-plus操作json字段mybatis-plusjson字段json字段 2022-11-13 18:11:53 266人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 演示表格准备2. sql操作JSON2.1.精确查询2.2.模糊查询3.mybatis-plus中操作jsON字段3.1自带方法的JSON处理3.2 QueryWrappe

1. 演示表格准备

demo表

CREATE TABLE `demo` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `tag` json DEFAULT NULL,
  PRIMARY KEY (`id`)
)

数据:

idtag
1[3, 4, 5]
2[“abc”]
3[“a”, “b”, “c”]

2. SQL操作JSON

2.1.精确查询

数组中查询是否包含某个特定元素

注意 ,字符串必须使用单引号+双引号

select * from demo where json_contains(tag,'"a"');
id|tag            |
--+---------------+
 3|["a", "b", "c"]|

2.2.模糊查询

select json_search(‘{“a”:“xyzf”,“b”:{“c”:“sdf”}}',‘all',‘%f%')

select * from doc where json_search(tag,‘all',‘%d%')

其他的不再赘述

3.mybatis-plus中操作JSON字段

3.1自带方法的JSON处理

实体类上要加上自动映射

@TableName(value="doc",autoResultMap = true)

json字段上加上json处理器

@TableName(value="doc",autoResultMap = true)
public class Doc{
    @TableField(value="tag",typeHandler = FastjsonTypeHandler.class)
    private Set<String> tag;
}   

这样,使用mybatis-plus自带的数据库操作方法时,就可以自动映射了。自己写的方法或SQL不管用。

3.2 QueryWrapper查询的JSON处理

数组模糊查询,模糊查询tag字段数组中是否有指定的值。

QueryWrapper<Doc> wrapper = new QueryWrapper<>();
wrapper.isNotNull("json_search(tag,'all',concat('%','" + param.getTag() + "','%'))");

3.3 自定义SQL操作

查询结果需要自定义映射,json字段需要使用typeHandler。

<resultMap id="resourceMap" type="com.demo.common.params.response.Resource" autoMapping="true" >
    <result column="tag" jdbcType="JAVA_OBJECT" property="tag" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" javaType="java.util.ArrayList"/>
</resultMap>
<select id="pageOfSearchKey" resultMap="resourceMap"
            parameterType="com.demo.common.params.request.doc.DocPageParam">
    select * from doc where json_search(tag,'all',concat('%',#{param.searchKey},'%'))
</select>

新增JSON中的元素,若已存在则不新增

<update id="addTag" parameterType="com.demo.common.params.request.doc.DocTagParam">
    update doc set tag =json_Array_append(tag,'$',#{param.tag}) , update_time=update_time
    where
    doc_no in
    <foreach collection="param.docNoList" item="docNo" open="(" separator="," close=")">
        #{docNo}
    </foreach>
    and !JSON_CONTAINS(tag,concat('"',#{param.tag},'"'))
</update>

删除JSON中的元素,删除已存在的元素,元素不存在则不删除

    <update id="removeTag">
        UPDATE doc SET tag = JSON_REMOVE(tag, JSON_UNQUOTE(JSON_SEARCH(tag, 'all', #{param.tag}))) WHERE
        JSON_SEARCH(tag, 'all',#{param.tag})
        and doc_no in
        <foreach collection="param.docNoList" item="docNo" open="(" separator="," close=")">
            #{docNo}
        </foreach>
    </update>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis-plus如何操作json字段

本文链接: https://www.lsjlt.com/news/170225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis-plus如何操作json字段
    目录1. 演示表格准备2. SQL操作JSON2.1.精确查询2.2.模糊查询3.mybatis-plus中操作JSON字段3.1自带方法的JSON处理3.2 QueryWrappe...
    99+
    2022-11-13
    mybatis-plus操作json字段 mybatis-plus json字段 json字段
  • Mybatis-plus操作json字段实战教程
    目录1、架构图2、功能3、表结构4、实体定义 5、Dao定义 6、类型转换器 7、测试后端动态列设计与实现三部曲,这是最后一步,使用java语言,结合m...
    99+
    2023-02-04
    Mybatis-plus操作json字段 Mybatis-plus操作json字段
  • Mybatis-Plus读写Mysql的Json字段的操作代码
    目录前置条件一、新建mysql表增加json字段二、pojo类三、测试类前置条件 确保mysql的版本是5.7+ 一、新建mysql表增加json字段 二、pojo类 packag...
    99+
    2024-04-02
  • Mybatis-Plus如何自动填充更新操作相关字段
    小编给大家分享一下Mybatis-Plus如何自动填充更新操作相关字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景介绍在项目的数据表设计中,每张表都有cre...
    99+
    2023-06-25
  • Mybatis-Plus怎么读写Mysql的Json字段
    本篇内容主要讲解“Mybatis-Plus怎么读写Mysql的Json字段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis-Plus怎么读写Mysql的Json字段”吧!前置条件确保...
    99+
    2023-06-30
  • mybatis plus如何更新字段为null
    本篇内容主要讲解“mybatis plus如何更新字段为null”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis plus如何更新字段为null”吧!mybati...
    99+
    2023-06-29
  • Mybatis-Plus自动填充更新操作相关字段的实现
    目录场景介绍 自动填充处理器 Mybatis-Plus配置类 配置实体类中相关字段的自动填充策略 在阿里开发手册的建表规约中有说明,数据库表中应该都要有create_time、upd...
    99+
    2024-04-02
  • Mybatis-Plus select如何不显示全部字段
    本篇内容介绍了“Mybatis-Plus select如何不显示全部字段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybati...
    99+
    2023-06-07
  • Mybatis-plus更新字段为null
    Mybatis-plus更新字段为null 1、在实体类的属性上增加注解:@TableField(updateStrategy = FieldStrategy.IGNORED)2、使用LambdaUpdateWrapper的set更...
    99+
    2023-08-19
    mybatis java 开发语言
  • mybatis plus-批量操作
    方法1: 使用mybatis plus内置的方法。目前常用的就一下几个方法。 // 插入(批量)boolean saveBatch(Collection entityList);// 插入(批量)boolean saveBatch(Coll...
    99+
    2023-08-16
    mybatis java mysql
  • Mybatis-plus批量操作
    前言         使用Mybatis-plus可以很方便的实现批量新增和批量修改,不仅比自己写foreach遍历方便很多,而且性能也更加优秀。但是Mybatis-plus官方提供的批量修改和批量新增都是根据id来修改的,有时候我们需求其...
    99+
    2023-09-01
    mybatis java mysql
  • Mybatis-Plus查询中如何排除标识字段
    一、查询中排除标识字段 1.1 测试查询 @Test public void findAllTest() { List<User> userList = us...
    99+
    2024-04-02
  • Mybatis-Plus将字段设置为null
    Mybatis-Plus将字段设置为null 项目场景: 最近在做一个需求的时候需要把数据库中的某个字段设置为空 问题描述: 在代码中通过set方法对一个字段设置成null,发现并没有起作用 原因分析...
    99+
    2023-09-05
    mybatis java mysql
  • Spark SQL中怎么操作JSON字段
    Spark SQL中怎么操作JSON字段,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。get_json_object第一个就是...
    99+
    2024-04-02
  • Mybatis-plus如何查询表中指定字段(不查询全部字段)
    目录查询表中指定字段(不查询全部字段)场景解决只查询部分字段的两种方法方法1方法2查询表中指定字段(不查询全部字段) 场景 Mybatis-Plus中BaseMapper提供的方法默...
    99+
    2024-04-02
  • MyBatis-Plus如何实现字段自动填充功能
    这篇文章给大家分享的是有关MyBatis-Plus如何实现字段自动填充功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言在项目中,我们有一些公共的字段需要做修改如:gmt_create:创建时间creat...
    99+
    2023-06-25
  • mybatis plus实体类中字段映射mysql中的json格式方式
    目录mybatis plus实体类中字段映射mysql中的json格式1.实体类中有个属性是其他对象2.那么取出时怎么进行映射呢,有分为两种情况mybatis-plus 实体 jso...
    99+
    2024-04-02
  • 基于mybatis-plus 时间字段比较
    mybatis-plus 时间字段比较 mybatis-plus 时间字段比较,默认lt/gt/ge时间比较时无效: 解决: LambdaQueryWrapper<?...
    99+
    2024-04-02
  • Mybatis-Plus字段策略FieldStrategy的使用
    目录前言一、官方文档二、字段策略介绍1、FieldStrategy作用2、FieldStrategy类型3、FieldStrategy配置单字段策略配置三、实战说明1.默认策略 - ...
    99+
    2022-11-13
    Mybatis-Plus字段策略FieldStrategy Mybatis-Plus FieldStrategy
  • 如何在Spring Boot中利用Mybatis Plus 自动填充字段
    这篇文章将为大家详细讲解有关如何在Spring Boot中利用Mybatis Plus 自动填充字段,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。加入依赖下面就通过 MyBatis Plus...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作