Mybatis中如何映射mysql中的JSON字段

 更新时间:2023年10月12日 14:35:17   作者:蓝色格子  
在mapper.xml中,需要在字段映射时加入typeHandler,具体:<id property="abnormalEigenList" column="AbnormalEigen" typeHandler="com.xxx.config.JsonHandler">,下面通过本文给大家介绍Mybatis中,映射mysql中的JSON字段,需要的朋友可以参考下

数据库mysql中的的某一个字段,存放的是一个List <String>的集合,需要将字段对应到entity的某一个参数上,mapper.xml中使用
<id property="abnormalEigenList" column="AbnormalEigen">的方式直接进行字段映射时,会出现java.lang.IllegalStateException: No typehandler found for property abnormalEigenList,具体的错误:

java.lang.IllegalStateException: No typehandler found for property abnormalEigenList
	at org.apache.ibatis.mapping.ResultMapping$Builder.validate(ResultMapping.java:151)
	at org.apache.ibatis.mapping.ResultMapping$Builder.build(ResultMapping.java:140)
	at org.apache.ibatis.builder.MapperBuilderAssistant.buildResultMapping(MapperBuilderAssistant.java:446)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildResultMappingFromContext(XMLMapperBuilder.java:393)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:280)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:254)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:246)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:119)

这时,我们需要定义一个类,对该json字符串进行转义:

import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import java.util.ArrayList;
import java.util.List;
/**
 * @author: 
 * @date: 2023-07-02 15:08
 * @description: 进行json字段的转换
 */
public class JsonHandler extends JacksonTypeHandler {
    public JsonHandler (Class<?> type) {
        super(type);
    }
    @Override
    protected List<String> parse(String json) {
        List<String> jsons = new ArrayList<>();
        try {
            jsons = JSONObject.parseArray(json, String.class);
        } catch (JSONException e) {
            jsons.add(JSONObject.parseObject(json, String.class));
        }
        return  jsons;
    }
}

在mapper.xml中,需要在字段映射时加入typeHandler,具体:<id property="abnormalEigenList" column="AbnormalEigen" typeHandler="com.xxx.config.JsonHandler">

到此这篇关于Mybatis中映射mysql中的JSON字段的文章就介绍到这了,更多相关mysql JSON字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java 多态实例代码

    java 多态实例代码

    这篇文章主要介绍了java 多态实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • java使用GeoTools读取shp文件并画图的操作代码

    java使用GeoTools读取shp文件并画图的操作代码

    GeoTools是ArcGis地图与java对象的桥梁,今天通过本文给大家分享java使用GeoTools读取shp文件并画图,文章通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-07-07
  • 集群环境中使用ehcache_动力节点Java学院整理

    集群环境中使用ehcache_动力节点Java学院整理

    这篇文章主要为大家详细介绍了集群环境中使用ehcache的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • SpringBoot+Kotlin中使用GRPC实现服务通信的示例代码

    SpringBoot+Kotlin中使用GRPC实现服务通信的示例代码

    本文主要介绍了SpringBoot+Kotlin中使用GRPC实现服务通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SpringBoot+URule实现可视化规则引擎的方法示例

    SpringBoot+URule实现可视化规则引擎的方法示例

    规则引擎其实是一种组件,它可以嵌入到程序当中,将程序复杂的判断规则从业务代码中剥离出来,使得程序只需要关心自己的业务,而不需要去进行复杂的逻辑判断,本文给大家介绍了SpringBoot+URule实现可视化规则引擎的方法示例,需要的朋友可以参考下
    2024-12-12
  • Springboot启动同时创建数据库和表实现方法

    Springboot启动同时创建数据库和表实现方法

    这篇文章主要介绍了Springboot启动同时创建数据库和表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • Linux下Java Python启动管理脚本方便程序管理

    Linux下Java Python启动管理脚本方便程序管理

    这篇文章主要为大家介绍了Linux下Java/Python启动管理脚本方便程序管理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • SpringBoot+Echarts实现请求后台数据显示饼状图

    SpringBoot+Echarts实现请求后台数据显示饼状图

    这篇文章主要介绍了SpringBoot+Echarts实现请求后台数据显示饼状图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • java中的static{}块的实例详解

    java中的static{}块的实例详解

    这篇文章主要介绍了java中的static{}块的实例详解的相关资料,这里提供实例来帮助大家理解该如何使用static块,需要的朋友可以参考下
    2017-08-08
  • 深入理解java异常处理机制及应用

    深入理解java异常处理机制及应用

    本篇文章主要介绍了java异常处理机制及应用,异常处理机制是Java语言的一大特色。从异常处理的机制、异常处理的方法、异常处理的原则等方面介绍Java语言的异常处理技术,有兴趣的可以了解一下。
    2016-12-12

最新评论