MyBatis PLus 处理json存储及返回

  • Post author:
  • Post category:其他

介绍

直接存储在数据库中的json串在发送到前端的时候会自动加上\,导致前端无法直接解析数据,选择使用Json串格式直接接收、储存和返回json串。

pom引入

	<!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3</version>
    </dependency>
	<!--JDCB连接池-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.18</version>
    </dependency>


任意的json处理jar
注:mysql5.7版本以后才支持直接储存json格式的内容(会有json格式效验)

代码处理

1.实体类上的注释
在需要处理的实体类上添加表名对应,并设置autoResultMap 为true
@TableName(value = "army_aid",autoResultMap = true)

2.属性字段设置 
在对应的实体属性上对应数据库表中的字段,并设置typeHandler = JacksonTypeHandler.class
@TableField(value = "hero_data",typeHandler = JacksonTypeHandler.class)
private JSONObject heroData;

3.mapper中的对应字段设置
在对应的mapper文件中,需要将对应的字段属性设置typeHandler
<result column="hero_data" property="heroData" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>

关于字段类型处理器myBatisPlus官方文档地址
https://baomidou.com/guide/typehandler.html

遇到的异常情况

1.无法找到JacksonTypeHandler类
MyBatis Plus  jar包版本过低,升级到3.4.3以后

2.无法启动项目
java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory
同时引用MyBatis plus和springboot-mybatis导致的jar包版本不一致引起,注释springboot-mybatis即可

官方提示:
引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。

3.java.sql.SQLFeatureNotSupportedException: null	
druid版本太低导致   升级druid版本到1.1.18以上可解决

版权声明:本文为Duke_CSDN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。