MyBatisPlus:通用枚举与代码生成器/MyBatisX插件

通用枚举

数据库表添加字段sex,设置为int型

创建通用枚举类型

package com.tinstu.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter
public enum EnumSex {

    MALE(1,"男"),FEMALE(2,"女");

    @EnumValue
    private Integer sex;
    private String sexName;

    EnumSex(int sex, String sexName) {
        this.sex = sex;
        this.sexName = sexName;
    }
}

User表中添加sex属性 和 其set属性

    private EnumSex sex;
    public void setSex(EnumSex sex) {
        this.sex = sex;
    }

配置扫描通用枚举

<bean
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml">
</property>
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="com.atguigu.mp.pojo"></property>
<!-- 设置MyBatis-Plus的全局配置 -->
<property name="globalConfig" ref="globalConfig"></property>
<!-- 配置扫描通用枚举 -->
<property name="typeEnumsPackage" value="com.atguigu.mp.enums"></property>
</bean>

测试

 
    @Test
    public void testSexEnum(){
        User user = new User();
        user.setName("Enum");
        user.setAge(20);
        //设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存储到数据库
        user.setSex(EnumSex.MALE);
        //INSERT INTO t_user ( username, age, sex ) VALUES ( ?, ?, ? )
        //Parameters: Enum(String), 20(Integer), 1(Integer)
        usermapperP.insert(user);
    }

代码生成器

引入依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

快速生成

public class text01 {
        public static void main(String[] args) {
            FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone = GMT",
                            "root", "root")
                    .globalConfig(builder -> {
                        builder.author("atguigu") // 设置作者
                                //.enableSwagger() // 开启 swagger 模式
                                .fileOverride() // 覆盖已生成文件
                                .outputDir("D://mybatis_plus"); // 指定输出目录
                    })
                    .packageConfig(builder -> {
                        builder.parent("com.atguigu") // 设置父包名
                                .moduleName("mybatisplus") // 设置父包模块名
                                .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus"));
                   // 设置mapperXml生成路径
                    })
                    .strategyConfig(builder -> {
                        builder.addInclude("t_user") // 设置需要生成的表名
                                .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                    })
                    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker 引擎模板,默认的是Velocity引擎模板
                    .execute();
        }
    }

MyBatisX插件

MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率
但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表
联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可
以使用MyBatisX插件
MyBatisX一款基于 IDEA 的快速开发插件,为效率而生。

MyBatisX插件用法:https://baomidou.com/pages/ba5b24/

阅读剩余
THE END