package com.segi.uhomecp.ls.car.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.jupiter.api.Test;
import java.util.Collections;
/**
* 基于mybatis-plus的代码生成工具
*
* @author Levi·Ackerman
*/
public class MybatisPlusCodeGeneratorTest {
private static final String DATABASE_URL = "jdbc:mysql://192.168.1.5:3306/car_manage?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&zeroDateTimeBehavior=convertToNull";
private static final String DATABASE_USERNAME = "uhome";
private static final String DATABASE_PASSWORD = "uhome110";
private static final String TABLE_NAME = "car_repair_monitor";
private static final String MODULE_NAME = "repair";
@Test
void doGenerator() {
String projectPath = System.getProperty("user.dir");
FastAutoGenerator.create(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD)
.globalConfig(builder -> {
builder.author("auto-generator") // 设置作者
.disableOpenDir()//禁止自动打开目录
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.commentDate("yyyy-MM-dd")
.dateType(DateType.TIME_PACK) //使用java8的LocalDateTime为时间类型
.outputDir(projectPath + "/src/main/java"); // 指定输出目录
}).packageConfig(builder -> {
builder.parent("com.segi.uhomecp.ls.car.business") // 设置父包名
.moduleName(MODULE_NAME) // 设置父包模块名
.entity("model")
.service("service")
.serviceImpl("service.impl")
.mapper("dao")
.xml("dao")
.other("utils")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/com/segi/uhomecp/ls/car/business/" + MODULE_NAME + "/dao")); //配置 mapper.xml 路径信息:项目的 resources 目录下
})
.strategyConfig(builder -> {
builder.addInclude(TABLE_NAME) // 设置需要生成的表名
.addTablePrefix("evt_ls", "c_") // 设置过滤表前缀
.mapperBuilder()
.superClass(BaseMapper.class) //设置父类
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
.formatXmlFileName("%sMapper") //格式化 Xml 文件名称
.enableBaseResultMap() //启用 BaseResultMap 生成
.enableBaseColumnList() //启用 BaseColumnList 生成
.serviceBuilder()
.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl
.entityBuilder()
.enableRemoveIsPrefix() //开启 Boolean 类型字段移除 is 前缀
.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命
.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命
.enableLombok() //开启 Lombok
.enableTableFieldAnnotation()
.build();
})
.templateConfig(builder -> {
builder.entity("/templates/entity")
.controller("")//不生成controller
.build();
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
记录下 基于mybatis-plus的代码生成工具
最新推荐文章于 2024-09-19 13:19:42 发布