ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【10】SpringBoot4 MyBatisPlus 枚举类型(enum)

2026/9/28 20:47:25 拓冰建站 浏览量
【10】SpringBoot4 MyBatisPlus 枚举类型(enum) SpringBoot4 MyBatisPlus 枚举类型enum前言创建工程pom.xmlapplication.yml创建枚举类UserStatusEnum调整实体类TbClient创建测试类EnumTest前言SpringBoot 版本4.0.8JDK 版本21.0.11IDEA 开发工具版本2026.2MySQL 数据库版本8.4.11.LTS关于项目MybatisPlus 更多使用可参考官网https://baomidou.com/相关依赖包坐标可参考官网https://mvnrepository.com/artifact/com.mysql/mysql-connector-j建表 SQLCREATETABLEtb_client(idBIGINTNOTNULLPRIMARYKEYAUTO_INCREMENTCOMMENT自增ID,client_idBIGINTNOTNULLCOMMENTID编号,user_noVARCHAR(30)COMMENT账号,user_passwordVARCHAR(60)COMMENT密码,nick_nameVARCHAR(30)COMMENT昵称,real_nameVARCHAR(30)COMMENT真实姓名,statusTINYINTNOTNULLDEFAULT0COMMENT状态0可用1禁用,info JSONCOMMENT扩展信息,created_timeDATETIMENOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,upated_timeDATETIMENOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT更新时间)COMMENT客户端信息表;INSERTINTOtb_client(client_id,user_no,user_password,nick_name,real_name,info)VALUES(100001,zhangsan,123456,张三,张三,{age: 25, gender: male, city: 上海}),(100002,lisi,123456,李四,李四,{age: 28, gender: male, city: 北京}),(100003,wangwu,123456,王五,王五,{age: 30, gender: male, city: 深圳});创建工程参考《SpringBoot4 MyBatisPlus 代码自动生成》使用代码自动生成如下用户状态status是Integer类型建议修改为枚举类型.pom.xmlprojectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion4.0.8/versionrelativePath//parentmodelVersion4.0.0/modelVersiongroupIdcom.junjiu.mybatisplus/groupIdartifactIdspringboot4-mybatisplus/artifactIdversion1.0-SNAPSHOT/versionpackagingjar/packagingnamespringboot4-mybatisplus/nameurlhttp://maven.apache.org/urlpropertiesmaven.compiler.source21/maven.compiler.sourcemaven.compiler.target21/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmybatis-plus.version3.5.17/mybatis-plus.versionfastjson2.version2.0.65/fastjson2.versiondruid.version1.2.28/druid.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-webmvc/artifactId/dependency!-- --!-- MyBatis Plus --!-- --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot4-starter/artifactIdversion${mybatis-plus.version}/version/dependency!-- --!-- MySQL --!-- Spring Boot 4.0.8 BOM 管理版本9.7.0 --!-- --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency!-- --!-- Druid --!-- --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-4-starter/artifactIdversion1.2.28/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeannotationProcessor/scope/dependencydependencygroupIdcom.alibaba.fastjson2/groupIdartifactIdfastjson2/artifactIdversion${fastjson2.version}/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency/dependencies/projectapplication.ymlspring:application:name:springboot3-mybatisplus-prodatasource:type:com.alibaba.druid.pool.DruidDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://192.168.88.101:3305/testdb?useUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrueusername:adminpassword:Qwer1314druid:# 初始化连接数initial-size:5# 最小空闲连接数min-idle:5# 最大连接数max-active:20# 获取连接最大等待时间max-wait:60000# 定期检测空闲连接time-between-eviction-runs-millis:60000# 最小空闲时间min-evictable-idle-time-millis:300000# 连接有效性检测validation-query:SELECT 1test-while-idle:truetest-on-borrow:falsetest-on-return:false# SQL 统计filter:stat:enabled:truelog-slow-sql:trueslow-sql-millis:2000wall:enabled:truemybatis-plus:mapper-locations:classpath*:/mapper/**/*.xmltype-aliases-package:com.junjiu.**.entityconfiguration:map-underscore-to-camel-case:truecache-enabled:falseglobal-config:banner:falsedb-config:id-type:assign_idlogic-delete-field:deletedlogic-delete-value:1logic-not-delete-value:0创建枚举类UserStatusEnumpackagecom.junjiu.mybatisplus.entity;importcom.baomidou.mybatisplus.annotation.EnumValue;importlombok.Getter;/** * 用户状态枚举 * */GetterpublicenumUserStatusEnum{NORMAL(0,正常),FREEZE(1,冻结);EnumValueprivateIntegercode;privateStringmessage;UserStatusEnum(Integercode,Stringmessage){this.codecode;this.messagemessage;}}调整实体类TbClient将用户状态status的类型由Integer修改为枚举类型UserStatusEnum创建测试类EnumTestpackagecom.junjiu.mybatisplus;importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONWriter;importcom.junjiu.mybatisplus.entity.TbClient;importcom.junjiu.mybatisplus.service.ITbClientService;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;SpringBootTestpublicclassEnumTest{AutowiredITbClientServiceclientService;TestpublicvoidtestSelect(){TbClientclientclientService.getById(1);System.out.println(JSON.toJSONString(client,JSONWriter.Feature.PrettyFormat));}}运行结果如下若想让结果显示为code或者message则需要在 enum 上面添加JSONField注解。例如JSONFieldprivateStringmessage;再次运行测试结果如下