欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis-plus處理存儲(chǔ)json數(shù)據(jù)過(guò)程

 更新時(shí)間:2025年08月28日 09:50:43   作者:Wang__dream  
文章介紹MyBatis-Plus 3.4.21處理對(duì)象與集合的差異:對(duì)象可用內(nèi)置Handler配合autoResultMap,集合需自定義處理器繼承FastjsonTypeHandler并重寫(xiě)parse方法,同時(shí)需明確指定類(lèi)類(lèi)型及XML中的resultMap以解決轉(zhuǎn)換問(wèn)題

對(duì)象和集合分兩種情況處理,目前我用的MP的版本是3.4.2

1、如果是對(duì)象

直接用MP內(nèi)置的Handler,JacksonTypeHandler或FastjsonTypeHandler

@TableField(typeHandler = FastjsonTypeHandler.class)
//@TableField(typeHandler = JacksonTypeHandler.class)
private CompaniesProject companiesProject;

然后 增加上 autoResultMap = true 屬性,數(shù)據(jù)庫(kù)字段companies_project mysql可以用json類(lèi)型,沒(méi)有就用字符類(lèi)型,就可以了

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

2、如果需要轉(zhuǎn)換的是List集合

那么目前MP自帶的Handler就不行,它只能處理對(duì)象,不能處理集合,需要進(jìn)行改造

下面這種會(huì)轉(zhuǎn)換失敗,直接報(bào)錯(cuò)的

@TableField(typeHandler = FastjsonTypeHandler.class)
//@TableField(typeHandler = JacksonTypeHandler.class)
private List<CompaniesProject> companiesProjectList;

需要把這段JSON.parseObject 改為解析集合的方法 JSON.parseArray

新建一個(gè)自定義處理器,然后繼承 FastjsonTypeHandler ,重載parse方法

public class JSONTypeHandler extends FastjsonTypeHandler {
    private final Class<? extends Object> type;

    public JSONTypeHandler(Class<?> type) {
        super(type);
        this.type = type;
    }

    @Override
    protected List parse(String json) {
        return JSON.parseArray(json, type);
//        return JSON.parseObject(json, type);
    }

    @Override
    protected String toJson(Object obj) {
        return super.toJson(obj);
    }
}

這樣還不行,因?yàn)镸P不知為何解析不了 CompaniesProject 類(lèi)型,需要明確告訴MP的class類(lèi)型

修改 @TableName,增加resultMap

@TableName(value = "table_name",resultMap = "com.xx.xx.xxDao.selectResultMap")

在對(duì)應(yīng)的dao xml中

<mapper namespace="com.xx.xx.xxDao">
    <resultMap id="selectResultMap" type="com.xx.xx.xx.ProjectScholarshipDeclarationCompaniesProjectEntity">
        <result property="companiesProjectList" column="companies_project_list" typeHandler="com.xx.common.handler.JSONTypeHandler" javaType="com.xx.xx.ProjectScholarshipDeclarationCompaniesProjectEntity$CompaniesProject"/>
    </resultMap>

</mapper>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Struts2攔截器機(jī)制

    詳解Struts2攔截器機(jī)制

    這篇文章主要介紹了詳解Struts2攔截器機(jī)制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java的Hibernate框架結(jié)合MySQL的入門(mén)學(xué)習(xí)教程

    Java的Hibernate框架結(jié)合MySQL的入門(mén)學(xué)習(xí)教程

    Java世界中的SSH三大框架是Web開(kāi)發(fā)方面的人氣組合,Hibernate便是其中之一,這里我們來(lái)整理一下Java的Hibernate框架結(jié)合MySQL的入門(mén)學(xué)習(xí)教程,需要的朋友可以參考下
    2016-07-07
  • Java 獲取本機(jī)IP地址的方法的兩種方法

    Java 獲取本機(jī)IP地址的方法的兩種方法

    本文主要介紹了Java 獲取本機(jī)IP地址的方法的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • SpringCloud Gateway實(shí)現(xiàn)限流功能詳解

    SpringCloud Gateway實(shí)現(xiàn)限流功能詳解

    SpringCloud Gateway 是 Spring Cloud 的一個(gè)全新項(xiàng)目,它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了SpringCloud Gateway實(shí)現(xiàn)限流,需要的朋友可以參考下
    2022-11-11
  • Java中equals()方法的理解與使用方法例子

    Java中equals()方法的理解與使用方法例子

    本文主要介紹了Java中的equals()方法,equals()方法是Object類(lèi)的方法,用于比較兩個(gè)對(duì)象是否相等,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-10-10
  • Spring @async方法如何添加注解實(shí)現(xiàn)異步調(diào)用

    Spring @async方法如何添加注解實(shí)現(xiàn)異步調(diào)用

    這篇文章主要介紹了Spring @async方法如何添加注解實(shí)現(xiàn)異步調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • JAVA IO的3種類(lèi)型區(qū)別解析

    JAVA IO的3種類(lèi)型區(qū)別解析

    這篇文章主要介紹了JAVA IO的3種類(lèi)型解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • log4j2 自動(dòng)刪除過(guò)期日志文件的配置及實(shí)現(xiàn)原理

    log4j2 自動(dòng)刪除過(guò)期日志文件的配置及實(shí)現(xiàn)原理

    這篇文章主要介紹了log4j2 自動(dòng)刪除過(guò)期日志文件配置及實(shí)現(xiàn)原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Hibernate一級(jí)緩存和二級(jí)緩存詳解

    Hibernate一級(jí)緩存和二級(jí)緩存詳解

    今天小編就為大家分享一篇關(guān)于Hibernate一級(jí)緩存和二級(jí)緩存詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Mybatis打印替換占位符后的完整Sql教程

    Mybatis打印替換占位符后的完整Sql教程

    這篇文章主要介紹了Mybatis打印替換占位符后的完整Sql教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論