12月12日记录mybatis plus的初始学习

发布时间 2023-12-14 23:38:04作者: 石铁生

今天开始mybatis plus的初始学习,首先是学习mybatis plus的引入方式需要引入下面三段代码

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

<!--mybatis-plus-generator-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.3.1</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>
分别是一个mybatis plus 和mybatis plus的代码生成器和生成器的一个构造器
引入完成后创建一个CodeGenerator类
写入一下代码
package com.example.mybatisplus;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.sql.Types;
import java.util.Collections;

public class CodeGenerator {
    public static final String database ="finaltest";
    public static final String url="jdbc:mysql://localhost:3306/"+database;
    public static final String username="root";//用户名
    public static final String password="1234";//密码
    public static final String tableName="teacher";//选择要生成的类
    private static final String basePath=System.getProperty("user.dir");
    public static void main(String[] args) {
        generator(tableName);
    }
    public static void generator(String tableName)
    {

        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("xue") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .disableOpenDir()
                            .outputDir(basePath+"/src/main/java/"); // 指定输出目录(提前构建好)
                })
                .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
                    int typeCode = metaInfo.getJdbcType().TYPE_CODE;
                    if (typeCode == Types.SMALLINT) {
                        // 自定义类型转换
                        return DbColumnType.INTEGER;
                    }
                    return typeRegistry.getColumnType(metaInfo);

                }))
                .packageConfig(builder -> {
                    builder.parent("com.example.mybatisplus") // 设置父包名
                            .moduleName(null) // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, basePath+"\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.entityBuilder().enableLombok();
                    builder.serviceBuilder().formatServiceFileName("%sService");
                    builder.controllerBuilder().enableHyphenStyle().enableRestStyle();
                    builder.addInclude(tableName) // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
                })
                .execute();
    }
}

然后就能够使用下面的mybatis plus简化后的代码了。