当前位置: 首页 > news >正文

在使用mybatis时遇到枚举的相关问题和解决

目录

1.前言

2.问题解决 

2.1 在父依赖中添加版本管理

 2.2 微服务中引入依赖

2.3 在application.yaml中进行配置

2.4 在枚举中添加注解 


1.前言

今天在使用mybatis的时候,如下SQL查询遇到了报错(其中status为枚举类型,数据库中存的为整形):

select id, avatar, username, password, phone, status from user where phone = #{phone} 

Error attempting to get column 'status' from result set. Cause: java.lang.IllegalArgumentException: No enum constant com.shop.user.enums.UserStatus.1] with root cause

发现原因是mybatis无法正常处理我的枚举类型,如下 :

public enum UserStatus {
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    int value;
    String desc;

    // 其它代码
}

2.问题解决 

看了一些博客,也问了gpt,原生的mybatis处理起来确实比较麻烦,所有我选择mybatis plus,它仅仅需要一个注解就能完美解决问题,顺带也解决了select只查询一部分字段的问题。我的项目为springcloud项目,下面是我的解决方法。

2.1 在父依赖中添加mybatis plus版本管理

<!-- mybatis plus 管理 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

 2.2 微服务中引入依赖

<!-- mybatis plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>

2.3 在application.yaml中进行配置

mybatis-plus:
  configuration:
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

2.4 在枚举中添加注解 

public enum UserStatus {
    FROZEN(0, "禁止使用"),
    NORMAL(1, "已激活"),
    ;
    @EnumValue
    int value;
    String desc;

    // 其它代码
}
http://www.dtcms.com/a/76085.html

相关文章:

  • ngx_http_core_srv_conf_t
  • 详解c++的编译过程,如何从源文件到可执行文件到
  • 每天五分钟深度学习框架pytorch:基于pytorch搭建循环神经网络RNN
  • 自然梯度下降公式解析
  • java生成一个可以下载的word文件
  • 【Spring】循环依赖
  • 【最新版】智慧小区物业管理小程序源码+uniapp全开源
  • PLC控制柜在技术创新驱动中功能演进 尤劲恩科技
  • C++20 线程协调类:从入门到精通
  • 大模型知识补充
  • 【APT攻击】针对渗透测试人员的大规模钓鱼攻击,涉及38个Github账号,你中招了吗?
  • 【大模型基础_毛玉仁】2.6 非 Transformer 架构
  • 【Go】运算符笔记
  • MFC开发:图形的绘制
  • C++八大常见的设计模式的实现与实践指南
  • 【亲测有效,已顺利上线】你好,你的小程序涉及提供播放、观看等服务,请补充选择:文娱-其他视频类目。(多种没有资质的解决方案)
  • 【EDA】Altium Designer关于禁网设置的那些事
  • 数据库系统概论
  • 【大模型基础_毛玉仁】3.1 Prompt 工程简介
  • 从0到1彻底掌握Trae:手把手带你实战开发AI Chatbot,提升开发效率的必备指南!
  • 活码在实际操作中的具体场景有哪些?怎么应用?
  • 蓝桥杯嵌入式组第十四届省赛题目解析+STM32G431RBT6实现源码
  • 整合百款经典街机游戏的模拟器介绍
  • 算法刷题记录——LeetCode篇(3) [第201~300题](持续更新)
  • 谱分析方法
  • 为什么“连接断开可能导致锁未释放”
  • 3.17 模拟赛总结(虚树求交,FWT/容斥, 后缀数组SA)
  • 【八股文】从浏览器输入一个url到服务器的流程
  • 密度估计:参数与非参数
  • 获取ftp目录及子目录下的文件并下载下来