当前位置: 首页 > 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;

    // 其它代码
}

相关文章:

  • 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,提升开发效率的必备指南!
  • 外交部:反对美方人士发表不负责任谬论
  • 今天北京白天气温超30℃,晚间为何下冰雹?
  • 沈阳卫健委通报“健康证”办理乱象:涉事医院已被立案查处
  • 一海南救护车在西藏无任务拉警笛开道,墨脱警方:已处罚教育
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 苹果或将于2027年推出由玻璃制成的曲面iPhone