mybatis-plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换

2023-11-03

一、mybatis-plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换
数据库:MySQL 、表:t_society_problems、字段:PROBLEM_TYPE (题干类型)、 类型:int
业务描述:在导入Excel文档时候,数据库表中题干类型字段为int型,数据库表中存储的格式为:1(单选)、2(多选)、3(判断),但是接收到的数据为String类型。
问题分析:需要将接收到的String类型转为int类型再将数据存储到数据库中?因为数据库中只有PROBLEM_TYPE (题干类型)字段,当我们接收到前端传过来的数据也不可能用int类型的PROBLEM_TYPE 去接收String类型的题库类型数据。所有我决定在实体中重新定义一个非数据库表t_society_problems的String类型字段,然后通过这个字段类接收从前端传过来的数据。对这个字段可以通过@TableField注解中的exist 属性是注释该字段是否属于该表的字段,默认值为true。
Excel的数据字段:

在这里插入图片描述

具体步骤:

1、在实体中定义字段:@TableField注解中的exist 属性是注释该字段是否属于该表的字段,默认值为true

 /**
     * 1单选 2多选 3判断
     */
	@Excel(name = "答题类型 int", width = 15)
    @ApiModelProperty(value = "答题类型 int")
    @Column(name="PROBLEM_TYPE")
    private  Integer problemType;

    @Excel(name = "答题类型", width = 15)
    @ApiModelProperty(value = "答题类型")
    @TableField(exist = false)
    private  String problemTypeS;

2、导入文档的工具类对数据字段PROBLEM_TYPE 的处理:

对应的枚举类:

public enum OptionEnum implements BaseEnum {
    PROBLEM_TYPE_ONE(1,"单选"),
    PROBLEM_TYPE_MANY(2,"多选"),
    PROBLEM_TYPE_JUDGE(3,"判断");
    
    private final int code;
    private final String info;
    OptionEnum(int code, String info){
        this.code = code;
        this.info = info;
    }

    @Override
    public int getCode() {
        return this.code;
    }
    @Override
    public String getInfo() {
        return this.info;
    }

    @Override
    public String getCodeToString() {
        return String.valueOf(code);
    }
}

枚举转换接口:

public interface BaseEnum {
    /***
     * @Title: getCode
     * @Param: []
     * @description: 获取编码
     * @author: TianLong
     * @date: 2023/2/15 14:56
     * @return: short
     * @throws:
     */
    int getCode();
    /***
     * @Title: getInfo
     * @Param: []
     * @description: 获取文本
     * @author: TianLong
     * @date: 2023/2/15 14:56
     * @return: java.lang.String
     * @throws:
     */
    String getInfo();

    /***
     * @Title: getCodeToString
     * @Param: []
     * @description: 获取字符串格式的编码
     * @author: TianLong
     * @date: 2023/2/15 14:56
     * @return: java.lang.String
     * @throws:
     */
    String getCodeToString();
}
 //对题干类型进行枚举转换
                    if (StringUtils.isNotBlank(listTSocietyProblems.get(i).getProblemTypeS()) && listTSocietyProblems.get(i).getProblemTypeS().equals("单选")){
                        tSocietyProblems = listTSocietyProblems.get(i).setProblemType(OptionEnum.PROBLEM_TYPE_ONE.getCode());
                    }
                    if (StringUtils.isNotBlank(listTSocietyProblems.get(i).getProblemTypeS()) && listTSocietyProblems.get(i).getProblemTypeS().equals("多选")){
                        tSocietyProblems = listTSocietyProblems.get(i).setProblemType(OptionEnum.PROBLEM_TYPE_MANY.getCode());
                    }
                    if (StringUtils.isNotBlank(listTSocietyProblems.get(i).getProblemTypeS()) && listTSocietyProblems.get(i).getProblemTypeS().equals("判断")){
                        tSocietyProblems = listTSocietyProblems.get(i).setProblemType(OptionEnum.PROBLEM_TYPE_JUDGE.getCode());
                    }

运行结果:
在这里插入图片描述

respect

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis-plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https

随机推荐

  • matlab练习程序(局部加权线性回归)

    通常我们使用的最小二乘都需要预先设定一个模型 然后通过最小二乘方法解出模型的系数 而大多数情况是我们是不知道这个模型的 比如这篇博客中z ax 2 by 2 cxy dx ey f 这样的模型 局部加权线性最小二乘就不需要我们预先知道待求解
  • SpringBoot使用Nacos

    Nacos Dynamic Naming and Configuration Service 是阿里巴巴开源的一个动态服务发现 配置管理和服务管理平台 Nacos特性 支持配置中心管理 含图形化界面 部署交付简单 包含注册中心 不用独自搭建
  • PyQt5的相对布局管理

    PyQt5的相对布局管理 博主PyQt5新手 最近在写一个可视化展示界面 第一个遇到的坑就是布局管理 其实可以不用相对布局 直接用QtDesigner进行傻瓜式的拖控件也不是不可以 高级一点 也可以用绝对布局 定义控件的绝对位置 就可以避免
  • 【算法】HJ59 找出字符串中第一个只出现一次的字符

    法一 STL include
  • 投标是个技术活,不这样做要么苟且,要么狗带

    客户关系妥妥的 却被一个标书的纰漏把单搞丢了 难道煮熟的鸭子也能飞 这10个投标的关键节点你需要知道 最近有销售朋友在哀叹 客户关系妥妥的 却被一个标书的纰漏把单搞丢了 难道煮熟的鸭子也能飞 我说有两种情况会导致这样的结果 一 你这鸭子根本
  • 铅蓄电池充电电流

    1 涓流充电 保护电池 0 1C 2 恒流充电 缩短充电时间 0 5C or 1C 3 恒压充电 防过充 降至0 01C
  • wpf TexBox的ValidationRules

    样式
  • matlab中ans的含义

    ns 最近计算的答案 语法 ans 说明 示例 当您在未指定输出参数的情况下运行返回输出的 MATLAB 代码时 MATLAB 会创建 ans 变量并将输出存储在该变量中 建议不要在脚本或函数中更改或使用 ans 的值 因为该值可能会经常变
  • nuget nuspec清单描述

    创建NuGet包 在创建一个NuGet包之前我们应该先创建一个以 nuspec为后缀的xml清单文件 这个清单文件描述了包的内容 在安装NuGet包的过程中这个清单文件扮演者很重要的角色 实际上它的作用就像app config一样 并且是不
  • (C语言)多项式加法

    多项式加法 问题描述 编写一个程序 实现两个多项式的加法运算 要求用一个有序的链表表示一个多项式 每一项用一个结点表示 在链表中按照项的幂数进行排列 输入形式 两个多项式 用空格隔开 每个多项式中没有空格 每项的系数是浮点数 每项的指数是非
  • 联想小新进入BIOS方法(解决安装VM虚拟机提示“Intel VT-x处于禁用状态”)

    最近要学项目部署 所以先安装个VWmare虚拟机 在虚拟机里安装Linux系统 我下载好Linux的镜像文件后 在vw里创建新的虚拟机时报错 发现我的电脑的虚拟化是禁用的 于是我在网上查了一下得打开BIOS才能修改虚拟化设置 问题是 我的电
  • 线性代数复习公式整理(自用/持续更新)

    文章目录 第一章 行列式 秩 化 叉 型行列式 化 ab 型行列式 化 三条杠 型行列式 化 两线加一点 型行列式 行列式运算 第二章 矩阵 矩阵与初等矩阵相乘做初等变换 矩阵转置的性质 矩阵伴随的性质 矩阵的逆的性质 矩阵可逆的充要条件
  • NeurIPS 2021 | Twins:重新思考高效的视觉注意力模型设计

    Twins 是美团和阿德莱德大学合作提出的视觉注意力模型 相关论文已被 NeurIPS 2021 会议接收 本文主要讲述 Twins 解决的难点 设计和实现思路 以及在美团场景的探索落地 希望能对从事视觉算法研发的同学有所帮助和启发 导读
  • SecureCRT日志上添加时间戳

    1 首先成功使用secureCRT打印串口信息 2 打开option菜单的session options对话框 3 点击LogFile选项 输入log文件路径和名字 最后在log data输入 Y M D h m s t 最后点击OK 4
  • MySQL下载步骤详解

    对于不同的操作系统 MySQL 提供了相应的版本 在 Windows 操作系统下 MySQL 数据库的安装包分为图形化界面安装和免安装这两种安装包 这两种安装包的安装方式不同 配置方式也不同 图形化界面安装包有完整的安装向导 安装和配置很方
  • my学习OC--流程控制

    1 顺序结构 编程语言中最常见的就是顺序结构 顺序结构就是程序从上到下一行一行执行 中间没有判断和跳转 如果main韩式几行代码间没有任何流程控制 则程序总是由上到下依次执行 2 条件语句 if 和 switch语句 if语句和switch
  • Parameter ‘contractState‘ not found. Available parameters are [request, page, param1, param2]

    目录 一 问题描述 二 解决过程 一 问题描述 org mybatis spring MyBatisSystemException nested exception is org apache ibatis binding BindingE
  • 博云,站在中国容器潮头

    容器云 微服务 中间件 AI 容器安全 每一个关键词背后 对应的是博云的新故事 是中国容器市场的新故事 也更是新一代定位PaaS的中国企业的故事 作者 皮爷 出品 产业家 2019年年底 赵安全邀请了三家服务过的企业客户来到公司总部 他是博
  • Android开发“仿美团”

    步骤分析 1 需求分析 首先需要确定该app的功能 包括用户端和商家端 以及必要的后台管理系统 需要考虑到美团app的主要功能 如定位 搜索 点评 下单 支付等 2 UI设计 根据需求确定app的界面设计风格 布局 色彩等 要考虑到用户体验
  • mybatis-plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换

    一 mybatis plus在实体中加入其他不属于数据库表的字段注释和数据类型的转换 数据库 MySQL 表 t society problems 字段 PROBLEM TYPE 题干类型 类型 int 业务描述 在导入Excel文档时候