日常开发中经常会用到枚举类型,在 Mybatis Plus 中使用枚举,可以提高代码的可读性,省去数据类型的转换,非常方便。
首先把依赖的包添加进去:
<dependency> <groupID>org.springframework.boot</groupID> <artifactID>spring-boot-starter</artifactID></dependency><dependency> <groupID>org.springframework.boot</groupID> <artifactID>spring-boot-starter-test</artifactID> <scope>test</scope></dependency><!-- lombok --><dependency> <groupID>org.projectlombok</groupID> <artifactID>lombok</artifactID></dependency><!-- hutool --><dependency> <groupID>cn.hutool</groupID> <artifactID>hutool-all</artifactID> <version>5.2.5</version></dependency><!-- mybatis plus --><dependency> <groupID>com.baomIDou</groupID> <artifactID>mybatis-plus-boot-starter</artifactID> <version>3.0.5</version></dependency><dependency> <groupID>com.baomIDou</groupID> <artifactID>mybatis-plus-extension</artifactID> <version>3.4.0</version></dependency><!-- druID --><dependency> <groupID>com.alibaba</groupID> <artifactID>druID-spring-boot-starter</artifactID> <version>1.1.21</version> <scope>compile</scope></dependency><dependency> <groupID>org.springframework.boot</groupID> <artifactID>spring-boot-starter-web</artifactID></dependency><!-- MysqL --><dependency> <groupID>MysqL</groupID> <artifactID>mysql-connector-java</artifactID> <scope>runtime</scope></dependency><dependency> <groupID>org.springframework.data</groupID> <artifactID>spring-data-commons</artifactID> <version>2.2.4.RELEASE</version></dependency>
之后按照步骤一步一步配置:
1.定义枚举类型
package com.example.demo.enums;import com.baomIDou.mybatisplus.annotation.IEnum;import lombok.Getter;@Getterpublic enum GenderTypeEnum implements IEnum<Integer> { /** * 女 */ WOMAN(0, "女"), /** * 男 */ MAN(1, "男"), /** * 保密 */ PRIVACY(2, "保密"); private Integer value; private String message; GenderTypeEnum(Integer value, String message) { this.value = value; this.message = message; } @OverrIDe public Integer getValue() { return this.value; } @OverrIDe public String toString() { return this.message; }}
2.配置枚举包扫描
有两种方式进行配置:
(1) 在配置文件中新增配置项
mybatis-plus.type-enums-package=com.example.demo.enums
(2) 在Java 配置类中添加配置项
@Bean("sqlSessionFactory") public sqlSessionFactory sqlSessionFactory() throws Exception { MybatissqlSessionfactorybean sqlSessionFactory = new MybatissqlSessionfactorybean(); ...... sqlSessionFactory.setTypeEnumsPackage("com.example.demo.enums"); return sqlSessionFactory.getobject(); }
这里的路径: com.example.demo.enums
配置的是枚举类所在包名。
3.创建数据库表
CREATE table `user` ( `ID` bigint(20) NOT NulL auto_INCREMENT, `name` varchar(255) DEFAulT NulL, `sex` int(11) DEFAulT NulL, PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAulT CHARSET=utf8;
4.创建使用枚举的实体类
package com.example.demo.entity;import com.baomIDou.mybatisplus.annotations.tableID;import com.baomIDou.mybatisplus.annotations.tablename;import com.baomIDou.mybatisplus.enums.IDType;import com.example.demo.enums.GenderTypeEnum;import lombok.Data;import org.springframework.data.annotation.ID;/** * @author: jichunyang * @description: 用户实体类 * @date: 2021/3/18 10:34 **/@Data@tablename("user")public class User { /** * 主键 */ @ID @tableID(type = IDType.auto) private Long ID; /** * 名字 */ private String name; /** * 性别(定义为枚举类型) */ private GenderTypeEnum sex = GenderTypeEnum.PRIVACY;}
这里的性别被定义为枚举类型,实际库表中存储的是整型,数据内容如下所示:
5.创建查询使用的服务类
package com.example.demo.service;import com.baomIDou.mybatisplus.core.conditions.query.queryWrapper;import com.example.demo.entity.User;import com.example.demo.enums.GenderTypeEnum;import com.example.demo.entity.mapper.UserMapper;import org.springframework.beans.factory.annotation.autowired;import org.springframework.stereotype.Service;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author: jichunyang * @description: 服务类 * @date: 2021/3/18 14:52 **/@Servicepublic class EnumService { @autowired private UserMapper userMapper; public Map getAllUsers() { queryWrapper<User> queryWrapper = new queryWrapper<>(); // 只查询性别为“女”的用户 queryWrapper.eq("sex", GenderTypeEnum.WOMAN); List<User> users = userMapper.selectList(queryWrapper); Map<String, List> map = new HashMap<>(); map.put("info", users); return map; }}
6.创建查询使用的控制类
package com.example.demo.controller;import com.example.demo.service.EnumService;import org.springframework.beans.factory.annotation.autowired;import org.springframework.web.bind.annotation.GetMapPing;import org.springframework.web.bind.annotation.RestController;import java.util.Map;/** * @author: jichunyang * @description: * @date: 2021/3/18 10:24 **/@RestControllerpublic class EnumController { @autowired private EnumService enumService; @GetMapPing("/getAllUsers") public Map getAllUsers() { return enumService.getAllUsers(); }}
启动后,访问路径即可获取到对应数据:
以上是内存溢出为你收集整理的Mybatis Plus 通用枚举的使用全部内容,希望文章能够帮你解决Mybatis Plus 通用枚举的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)