mybatis-plus 實體json互相轉(zhuǎn)化; typeHandler的使用

環(huán)境:spring boot項目 mybatis-plus作為持久層

  1. 實體類 TableName注解添加屬性值 autoResuleMap = true,字段加TableField注解,添加屬性值typeHandler = JacksonTypeHandler.class
    FastjsonTypeHandler同樣可以實現(xiàn),二者的區(qū)別:
    JacksonTypeHandler可以兼容 MybatisPlus 的功能和滿足 支持 MySQL JSON 解析

    • 支持 MVC JSON 解析
    • 支持 MySQL JSON 解析

    FastjsonTypeHandler

    • 支持 MVC JSON 解析
    • 不支持 MySQL JSON 解析
@Data
@Accessors(chain = true)
@TableName(value = "base_info",autoResultMap = true)
public class BaselineEcuInfo implements Serializable {
   private static final long serialVersionUID = -83548930182013052L;
   
   private Integer id;
  
   private String name;
   /**
    * 這個字段數(shù)據(jù)庫存的是json字符串
    */
   @TableField(typeHandler = JacksonTypeHandler.class)
   private InfoDto value;
}

注意事項

  • MVC JSON 解析時,可以不用加 @TableName(value = "t_test", autoResultMap = true) 【高亮部分】,但是 MySQL JSON 解析查詢的時候,如果不加,查出來為 null
  • MySQL JSON 解析查詢時,只支持JSON格式:{"name":"Tomcat","age":10},不支持:{"name":"Tomcat","age":10} 和 "{"name":"Tomcat","age":10}"
  1. xml文件,resulltMap里面的字段,添加 typeHandler 屬性
<result property="ext"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" 
column="ext"/>

注:mybatis 會有所不同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容