05 mybatis-plus代码生成器

  • Post author:
  • Post category:其他



代码生成器

pom.xml

<?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">

    <groupId>li.chen.com</groupId>
    <artifactId>AutoGenerator</artifactId>
    <version>1.0-SNAPSHOT</version>

    <modelVersion>4.0.0</modelVersion>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--简化代码的工具包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mybatis-plus的springboot支持-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <!--代码生成器依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <!--mapper文件与xml温江放在同一文件夹下,需添加此配置-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

</project>

代码生成器文件,直接运行此文件

(注意修改数据库配置信息,表名映射)

package li.chen.com;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class MpGenerator {
    // TODO 修改服务名以及数据表名
    private static final String SERVICE_NAME = "content";
    private static final String[] TABLE_NAMES = new String[]{
            "tb_user" };

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 选择 freemarker 引擎,默认 Velocity
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setFileOverride(true);//是否覆盖文件
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");//输出路径
        gc.setAuthor("itcase");//作者名称
        gc.setOpen(false);//生成后是否自动打开文件
        gc.setSwagger2(false);//是否使用swagger2
        gc.setServiceName("%sService");//生成的service接口名称
        gc.setServiceImplName("%sServiceImpl");
        gc.setBaseResultMap(true);//mapper.xml中生成基础resultMap
        gc.setBaseColumnList(true);//mapper.xml中生成基础columnList
        mpg.setGlobalConfig(gc);
        // 数据库配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.MYSQL);//数据类型
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/mp");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);
        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(SERVICE_NAME);
        pc.setParent("li.chen.com");
        pc.setServiceImpl("service");
        pc.setXml("mapper");
        mpg.setPackageInfo(pc);
        // 设置模板
        TemplateConfig tc = new TemplateConfig();
        mpg.setTemplate(tc);
        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);//表名映射到实体策略,带下划线的转成驼峰
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//列名映射到类型属性策略,带下划线的转成驼峰
        strategy.setEntityLombokModel(true);//实体类使用lombok
        // strategy.setRestControllerStyle(true);//controller使用rest接口模式
        strategy.setInclude(TABLE_NAMES);//设置表名
        strategy.setTablePrefix("tb_");//表名映射到实体名称去掉前缀

        strategy.setEntityBooleanColumnRemoveIsPrefix(true);// Boolean类型字段是否移除is前缀处理
        mpg.setStrategy(strategy);
        mpg.execute();
    }

}

运行结果

在这里插入图片描述

在这里插入图片描述



版权声明:本文为cl66666666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。