MybatisPlus保存、讀取MySQL中的json字段失敗問題及解決
MybatisPlus保存、讀取MySQL的json字段失敗
場(chǎng)景
mybatis-plus保存mysql數(shù)據(jù)庫,有字段為json,在java中定義字段為String,但是在保存的時(shí)候,json數(shù)據(jù)沒有入庫,為空,代碼執(zhí)行未報(bào)錯(cuò)。
解決方案
直接用對(duì)應(yīng)的Object來做映射,然后增加對(duì)應(yīng)的@TableField注解
@Data public class UserEntity{? ? ? private String userId;? ? ? @TableField(value = "json_obj", typeHandler = FastjsonTypeHandler.class) ? ? private Object jsonObj; } @TableField(value = "json_obj", typeHandler = FastjsonTypeHandler.class)
主要是通過這個(gè)字段來映射,就可以完美解決
在讀取的時(shí)候,主要是在實(shí)體類中@TableName(autoResultMap = true),autoResultMap這個(gè)參數(shù)
@TableName(autoResultMap = true) @Data public class UserEntity {? ?? }
Mybatis插入MySQL的json字段報(bào)錯(cuò)
cannot create a json value from a string with character set 'binary'
mysql5.7后支持json類型的字段,但是mybatis暫時(shí)不支持,生成的實(shí)體對(duì)象的參數(shù)類型是Object,mapper文件的jdbcType是OTHER,
解決辦法
把生成的實(shí)體對(duì)象對(duì)應(yīng)的字段類型改為String,mapper文件里面對(duì)應(yīng)的字段類型改為VARCHAR,插入的參數(shù)是json字符串
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java的GUI編程之列表和組合框的設(shè)計(jì)使用
這篇文章主要介紹了Java的GUI編程之列表和組合框的設(shè)計(jì)使用,是Java圖形界面編程中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10Java設(shè)計(jì)模式之策略模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
策略模式是對(duì)算法的封裝,把一系列的算法分別封裝到對(duì)應(yīng)的類中,并且這些類實(shí)現(xiàn)相同的接口,相互之間可以替換。接下來通過本文給大家分享Java設(shè)計(jì)模式之策略模式,感興趣的朋友一起看看吧2017-08-08Spring框架通過工廠創(chuàng)建Bean的三種方式實(shí)現(xiàn)
這篇文章主要介紹了Spring框架通過工廠創(chuàng)建Bean的三種方式實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03使用JAXBContext輕松實(shí)現(xiàn)Java和xml的互相轉(zhuǎn)換方式
這篇文章主要介紹了依靠JAXBContext輕松實(shí)現(xiàn)Java和xml的互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享
這篇文章主要介紹了Java中將 int[] 數(shù)組 轉(zhuǎn)換為 List分享的相關(guān)資料,需要的朋友可以參考下2022-12-12SpringCloud大文件分片斷點(diǎn)上傳實(shí)現(xiàn)原理
這篇文章主要介紹了SpringCloud大文件分片斷點(diǎn)上傳實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05