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 代码生成器的使用

详解:MyBatis-Plus 代码生成器的使用

MyBatis-Plus——逆向工程之AutoGenerator代码生成器

MyBatis-Plus——逆向工程之AutoGenerator代码生成器

Mybatis-plus 代码生成器(新)工具类

Mybatis-plus 代码生成器(新)工具类