Mybatis Plus 通用枚举的使用

Mybatis Plus 通用枚举的使用,第1张

概述日常开发中经常会用到枚举类型,在 Mybatis Plus 中使用枚举,可以提高代码的可读性和省去数据类型的转换,非常方便。使用的配置也是比较简单的,具体步骤如下:1.定义枚举类型@Getterpublic enum GenderTypeEnum implements IEnum<Integer> { /** * 女 */ WOMAN(0, "女"), /** * 男 */ MAN(1, "男"), /

日常开发中经常会用到枚举类型,在 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 通用枚举的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1210645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存