JSON的返回可以看这个博客 还是写的比较详细的 同时也是自己记录一下
MybatisPlus如何处理Mysql的json类型_java_脚本之家
以下为自己的实践:
1、使用 MybatisPlus的通用方法查询返回 JSON字段 如下
需要在实体类上加入 autoResultMap = true
需要在字段上加入 @TableField(typeHandler = JacksonTypeHandler.class)
typeHandler有多种使用方法 比如字符串List 但这里使用的是 List<Map>的
@Data
@ApiModel("合同台账")
@TableName(value = "tb_standing_book",autoResultMap = true)
public class StandingBook extends BaseEntity<StandingBook> {
@ApiModelProperty("附件")
@TableField(typeHandler = JacksonTypeHandler.class)
private List<Map> attachments;
}
2、如果是在Xml中查询需要查询返回JSON字段 必须要进行一层 resultMap 映射进行配置 如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sh.tb.mapper.StandingBookMapper"><resultMap type="com.ksb.tb.dto.StandingBookDto" id="standingBookDto">
<result property="attachments" column="attachments" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
</resultMap>
<select id="standingBookPage" resultMap="standingBookDto">
select
tb_standing_book.attachments as attachments,
tb_standing_book.customer_no as customerNo,
from tb_standing_book
</select></mapper>
3、如果是JSON SQL查询 可以采用该SQL语句 ext_params 为JSON字段 currency 为JSON中的key值
AND JSON_EXTRACT(ext_params, '$.currency') = #{currency}
备注一下Mybait 升级为 Plus的一次报错
注意看 SqlSessionFactory 是否有自定义配置 需要将Mybait的配置升级为 PLus