mysql中json类型字段的基本用法实例 目录 前言 基本环境 JSON类型字段常用操作 插入JSON类型数据 查询JSON类型数据 更新JSON类型数据中的特定字段 匹配JSON类型数据中的特定字段 结语 前言 mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类
目录
- 前言
- 基本环境
- JSON类型字段常用操作
- 插入JSON类型数据
- 查询JSON类型数据
- 更新JSON类型数据中的特定字段
- 匹配JSON类型数据中的特定字段
- 结语
前言
mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们主要来梳理一下我们在日常工作中使用实践
基本环境
mysql版本:8.0.28
springboot版本: 2.2.2
测试表结构:
表结构对应的实体类:
JsonObj类
自定义格式转换类:转换过程通过fastjson来进行,需依赖fastjson对应的pom文件
JSON类型字段常用操作
插入JSON类型数据
在项目开发中,表结构中的json字段可以用JSONObject这样的比较灵活的方式来传递,但是这样的方式有一个比较大的问题就是我们在获得这个结构后无法很直观的确定json字段中存储的数据,比较好的一种方式是我们将表结构中的json类型的字段以自定义的类来存储,这样我们再存取这个类对应的对象的时候,就可以明确的知道数据库中对应的json字段到底存储的是一些什么样的key,如果需要进行调整的话,我们只需要在该类中新增新的字段即可,完全无需对数据库进行任何的调整。这样的存储方式我们再插入和查询该字段的时候需要指定一个指定的数据类型转换的类来对数据库中的JSON格式数据和我们在项目中的自定义类进行转换的类,具体如下图所示:
查询JSON类型数据
在进行查询时,由于也需要进行json格式数据和自定义类的转换,所以我们需要指定对应的json字段和转换的工具类,通过@Result注解来进行指定
更新JSON类型数据中的特定字段
进行指定字段的更新的话,有两种方式可以采用,一种方式是先将该json格式字段中的所有数据都取出,然后通过修改当前对象的值,然后整个json格式字段set进去;第二种方式直接通过json格式的特定SQL语法来进行指定key的更新;下面的例子里面我们分别根据这两种不同的模式进行更新操作
说明
和上面的JSON_SET同样可以用于修改的操作函数还有:JSON_INSERT、 JSON_REPLACE 、 JSON_REMOVE等,下面简单说一下这几个函数的不同
- JSON_INSERT : json字段中的key不存在才会修改
- JSON_REPLACE : json字段中的key存在才会修改
- JSON_SET : json字段中的可以不管是否存在都会修改
- JSON_REMOVE : 移除json字段中的指定key
如下所示JSON_REMOVE的用法:
匹配JSON类型数据中的特定字段
结语
到此这篇关于mysql中json类型字段的基本用法的文章就介绍到这了,更多相关mysql json类型字段用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!