一.数据库设计 CREATE TABLE `inv_learning_examination_questions` ( `id` bigint(20) NOT NULL, `title` varchar(255) CHARA
CREATE TABLE `inv_learning_examination_questions` ( `id` bigint(20) NOT NULL, `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '题目', `options` JSON NULL COMMENT '选项', `standard_answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准答案', `answer_analysis` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '答案解析', `open_range` tinyint(4) NULL DEFAULT NULL COMMENT '开放范围', `business_area` tinyint(4) NULL DEFAULT NULL COMMENT '业务领域', `difficulty_level` tinyint(4) NULL DEFAULT NULL COMMENT '难度等级', `topic_type` tinyint(4) NULL DEFAULT NULL COMMENT '选题类型', `views` int(11) NULL DEFAULT NULL COMMENT '浏览量', `collect` int(11) NULL DEFAULT NULL COMMENT '收藏量', `status` tinyint(4) NULL DEFAULT NULL COMMENT '发布状态', `release_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间' PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
package com.innovation.desk.domain;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableName;import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;import com.fasterxml.jackson.annotation.JsonFormat;import com.innovation.common.base.BaseLLEntity;import com.innovation.common.utils.DateUtil;import com.innovation.desk.handler.OptionHandler;import lombok.Data;import lombok.EqualsAndHashCode;import io.swagger.annotations.apiModel;import io.swagger.annotations.ApiModelProperty;import org.springframework.format.annotation.DateTimeFormat;import java.util.Date;import java.util.List;@Data@TableName(value = "inv_learning_examination_questions",autoResultMap = true)@EqualsAndHashCode(callSuper = true)@ApiModel(value = "LearningExaminationQuestions对象", description = "LearningExaminationQuestions对象")public class LearningExaminationQuestions extends BaseLLEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "题目") private String title; @TableField(typeHandler = OptionHandler.class) @ApiModelProperty(value = "选项") private List
@TableField(typeHandler = FastjsonTypeHandler.class)
此处FastjsonTypeHandler有多个类型可供选择:比如AbstractJsonTypeHandler,AbstractsqlParserHandler,FastjsonTypeHandler,GsonTypeHandler,JacksonTypeHandler,MybatisEnumTypeHandler
原因:type属性被注入进来的只是List的字节码文件,通过parse方法只能将json转化为List
public class OptionHandler extends FastjsonTypeHandler { public OptionHandler(Class> type) { super(type); } @Override protected Object parse(String json) { return JSON.parseArray(json, Option.class); } @Override protected String toJson(Object obj) { return super.toJson(obj); }}
添加完成后只需在实体类的对应属性上添加注解
@TableField(typeHandler = OptionHandler.class)即可实现解析
如果使用了xml文件可参考以下方式
来源地址:https://blog.csdn.net/qq_41514643/article/details/129441803
--结束END--
本文标题: 使用mybatisplus接收mysql字段为json类型的数据
本文链接: https://www.lsjlt.com/news/386141.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0