在平常的开发中,我们可能会有这样的需求:
业务数据在存储的时候,并不是以mysql中的varchar
丶int
等格式来存储的,而是使用json
格式.
这样做的好处是当数据结构有变化或者需求变化时,我们不用再添加字段,方便扩展.
那么mysql中json
格式的数据我们使用mybatis或者mybatisplus读取以后,肯定是希望转换成对象或者对象集合的,本篇博文就记录一下使用mybatis
读取json
格式的数据转换为对象的方法
首先我们如果要使用sql语句来在表中添加一个json
格式的字段,可以使用以下脚本:
添加完成以后,我们可以在这个字段中保存json对象或者json数组格式的字符串.
当前的业务场景是: alert_up_config
字段中,是个jsonArr,保存的是告警的升级规则,比如持续时间,次数等.
首先我们可以使用sql语句来提取我们需要的json字段,语法如下:
#json对象类型处理
比如对于我们上面的示例数据,我们要查询出alert_up_config
字段中的alertNum
的值,可以使用如下语句:
也就是说,如果我们要处理从mysql
中取出的数据,就可以实现这个接口,来自定义我们的数据处理逻辑,得到我们想要的数据.
现在对于我们来说,我们的源数据是这样的:
现在,我们的需要mybatis或者mybatisplus帮助我们将数据库中的json
数据自动转换为相应的格式,一起来看下怎么实现吧!
它抽象了json处理的方法:
同时,它提供两个抽象方法,用于提供给不同的json包:
-
autoResultMap
参数表明字段在查询处理的时候自动转换为对象
在xml中实现json和对象的转换也比较简单
同样的handler,只是配置方式从注解改成xml中的属性了.
在本篇博文中,介绍了数据库json字段和java对象,以及集合对象的相关转换,记录在这里,以后有需要的时候可以及时查阅