mybatis-plus代码生成器(新)项目案例
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-plus代码生成器(新)项目案例相关的知识,希望对你有一定的参考价值。
文章目录
建项目
新建一个maven项目
依赖
引人依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mp</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
</parent>
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<!-- mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
<scope>runtime</scope>
</dependency>
<!-- mybatisPlus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mybatisplus 生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<!-- Freemarker 引擎模板 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<!-- Velocity 引擎模板(MP生成器默认使用) -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
</dependency>
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
</project>
运行程序主类
package com.mp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author YangYongli
* 2022/2/31 25:02
*/
@SpringBootApplication
public class GeneratorApplication
public static void main(String[] args)
SpringApplication.run(GeneratorApplication.class, args);
生成器类
package com.mp;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.fill.Property;
import java.util.Collections;
/**
* 使用时修改标注的地方即可
*
* @author YangYongli
* 2022/2/31 25:05
*/
public class Generator
public static void main(String[] args)
// TODO 配置数据源
FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/user_test?useUnicode=true&serverTimezone=GMT&characterEncoding=utf-8", "root", "root")// jdbc 基础配置
.globalConfig(builder ->
builder.author("yyl") // 设置作者
// .enableSwagger() // 开启 swagger 模式
.disableOpenDir()// 禁止打开输出目录,默认值:true(即默认会自动打开输出目录)
.commentDate("yyyy-MM-dd HH:mm")// 注释日期,默认值: yyyy-MM-dd
// TODO System.getProperty("user.dir") 拿到工程的绝对路径
.outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录
)
.packageConfig(builder ->
// TODO 包信息配置
builder.parent("com.mp") // 设置父包名,默认值:com.baomidou
.moduleName("samples") // 设置父包模块名,默认值:无
.entity("entity")// Entity 包名,默认值:entity
.service("service")// Service 包名,默认值:service
.serviceImpl("service.impl")// Service Impl 包名,默认值:service.impl
.mapper("mapper")// Mapper 包名,默认值:mapper
.xml("mapper.xml")// Mapper XML 包名,默认值:mapper.xml
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper/xml")) // 路径配置信息 TODO 用不到则注释掉
.controller("controller");// Controller 包名,默认值:controller
)
.strategyConfig(builder ->
// TODO 设置需要生成的表,不设置则生成所有表
builder.addInclude("t_user") // 设置需要生成的表名,支持设置多个,不设置则生成所有表
.addTablePrefix("t_", "tb_")// 设置过滤表前缀,支持设置多个,设置后在生成实体类时会过滤掉该前缀
.entityBuilder().disableSerialVersionUID()// 禁用生成 serialVersionUID,默认值:true
.enableChainModel()// 开启链式模型,默认值:false
.enableLombok()// 开启 lombok 模型,默认值:false
// .enableRemoveIsPrefix()// 开启 Boolean 类型字段移除 is 前缀,默认值:false
.enableTableFieldAnnotation()// 开启生成实体时生成字段注解,默认值:false
.enableActiveRecord()// 开启 ActiveRecord 模型,默认值:false,开启后实体类会继承Model类
.versionColumnName("version")// 乐观锁字段名(数据库) TODO 用不到则注释掉
// .versionPropertyName("version")// 乐观锁属性名(实体)
.logicDeleteColumnName("deleted")// 逻辑删除字段名(数据库) TODO 用不到则注释掉
// .logicDeletePropertyName("deleted")// 逻辑删除属性名(实体)
// .naming(NamingStrategy.underline_to_camel)// 数据库表映射到实体的命名策略,默认下划线转驼峰命名:NamingStrategy.underline_to_camel
// .columnNaming(NamingStrategy.underline_to_camel)// 数据库表字段映射到实体的命名策略,默认为 null,未指定按照 naming 执行
// .addIgnoreColumns("age", "name")// 添加忽略字段,支持设置多个,设置后字段将不会生成实体字段映射
.addTableFills(new Column("create_time", FieldFill.INSERT))// 添加表字段填充 TODO 用不到则注释掉
.addTableFills(new Property("updateTime", FieldFill.INSERT_UPDATE))// 添加表字段填充 TODO 用不到则注释掉
// .idType(IdType.AUTO)// 全局主键类型
// .formatFileName("%sEntity")// 格式化文件名称
.mapperBuilder().superClass(BaseMapper.class)// 设置父类
.enableMapperAnnotation()// 开启 @Mapper 注解,默认值:false
.enableBaseResultMap()// 启用 BaseResultMap 生成,默认值:false
.enableBaseColumnList()// 启用 BaseColumnList,默认值:false
// .cache(MyMapperCache.class)// 设置缓存实现类
// .formatMapperFileName("%sDao")// 格式化 mapper 文件名称
// .formatXmlFileName("%sXml")// 格式化 xml 实现类文件名称
// .serviceBuilder().formatServiceFileName("%sService")// 格式化 service 接口文件名称,不设置的话默认会带有 I 前缀
// .formatServiceImplFileName("%sServiceImp")// 格式化 service 实现类文件名称
.controllerBuilder().enableHyphenStyle()// 开启驼峰转连字符,默认值:false
// .formatFileName("%sAction")// 格式化文件名称
.enableRestStyle();// 开启生成@RestController 控制器,默认值:false
)
.templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 引擎模板,默认的是 Velocity 引擎模板
.execute();
测试
数据库
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`nickname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`come_to` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
修改一下代码里的配置信息:
运行:
完美
项目链接
https://download.csdn.net/download/weixin_45525272/86246527
以上是关于mybatis-plus代码生成器(新)项目案例的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis-Plus——逆向工程之AutoGenerator代码生成器