【mybatisplus自动生成代码】

博客介绍了MyBatis-Plus 3.5.1自动生成代码的方法,主要包含两个步骤,一是修改pom.xml文件,二是编写代码生成类。涉及Java、MyBatis和MySQL等技术。

mybatisplus3.5.1自动生成代码

1、修改pom.xml文件

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--mybatis-plus扩展包-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--mybatis-plus代码生成-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
            <scope>compile</scope>
        </dependency>

2、代码生成类

package cn.worken.erp.itp.util;


import cn.worken.commons.web.BaseUserInfoController;
import com.baomidou.mybatisplus.annotation.IdType;
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 com.google.common.collect.Lists;

import java.io.IOException;
import java.util.Collections;
import java.util.List;

/**
 * @description:代码生成Mybatispus3.5.1
 * @author:zhoutiegang
 * @time:2022/10/27 11:25
 */
public class MybatisGenerator35 {

    public static void main(String[] args) throws IOException {
        // 需要生成的表名,如果不指定表名,表示全部都生成
        List<String> tabNameList = Lists.newArrayList("table_ztg");
        // 作者
        String author = "zhoutiegang";


        /***********************************以下是公共部分*****************************************************/
        FastAutoGenerator
            // 数据库连接配置
            .create("jdbc:mysql://127.0.0.1:3306/test" +
                            "?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8",
                    "root", // 用户名
                    "root") // 密码

            // 全局配置
            .globalConfig(builder -> {
                builder
                        .outputDir(System.getProperty("user.dir") + "//src//main//java//") // 生成项目目录
                        // .outputDir("E://code//wx")  // 自定义生成目录
                        // .enableSwagger() // 自动swagger注解
                        .disableOpenDir() // 生成文件后不打开目录
                        .author(author) // 作者
                        .commentDate("yyyy-MM-dd HH:mm:ss") // 注释日期
                        .dateType(DateType.ONLY_DATE) // 时间策略,推荐用Date
                        .fileOverride() // 文件覆盖
                ;
            })

            // 包路径
            .packageConfig(builder -> {
                builder
                        .parent("com.ztg") // 父包名
                        // .moduleName("bus") // 模块名
                        .controller("controller")// controller路径
                        .entity("entity")// entity路径
                        .service("service")// service路径
                        .serviceImpl("service.impl") // impl路径
                        .mapper("mapper")  // mapper路径
                        // .xml("resources.mapper") // xml文件放到src/main/java 目录下
                        // 将xml文件放到resource目录下
                        .pathInfo(Collections.singletonMap(OutputFile.mapperXml,
                                System.getProperty("user.dir") + "//src//main//resources//mapper")) // xml位置(还可自定义配置entity,service等位置)
                ;
            })

            // 策略配置
            .strategyConfig(builder -> {
                builder
                        // .enableCapitalMode()// 全局大写命名
                        // .addExclude("databasechangelog", "databasechangeloglock")// 排除生成的表
                        .addInclude(tabNameList) // 生成表
                        // .addTablePrefix("itp_") // 过滤表前缀
                        // .addFieldPrefix("tb_") // 字段前缀
                        .enableSkipView() //跳过视图

                        .controllerBuilder()
                        .enableRestStyle() //@RestController 注解
                        //.enableHyphenStyle() //url中驼峰转连字符
                        //.superClass(BaseUserInfoController.class)
                        .formatFileName("%sController")

                        .entityBuilder()
                        .idType(IdType.INPUT) // 指定IdType
                        .enableLombok()// lombok 模型
                        //.enableChainModel() // 链式操作
                        //.enableSerialVersionUID()
                        //.enableRemoveIsPrefix() 去掉字段前边的is
                        //.superClass(BaseEntity.class)
                        // .enableTableFieldAnnotation() // 开启字段注解
                        //.addSuperEntityColumns("id", "createDate", "createId", "updateDate", "updateId") // 自定义实体,公共字段
                        .naming(NamingStrategy.underline_to_camel)
                        .formatFileName("%sEntity")

                        .serviceBuilder()
                        .formatServiceFileName("%sService")
                        .formatServiceImplFileName("%sServiceImpl")

                        .mapperBuilder()
                        .formatMapperFileName("%sMapper")
                        .formatXmlFileName("%sMapper")
                        // .enableBaseColumnList() // 是否自动生成列
                        .enableBaseResultMap()
                ;
            })

            // 模板设置
            .templateConfig(builder -> {
                // builder
                // .controller("") // 不生成文件
                // .serviceImpl("")  // 不生成文件
                // .service("") // 不生成文件
                // .entity("") // 不生成文件
                // .mapper("") // 不生成文件
                // .mapperXml("") // 不生成文件

                // 以下使用模板
                // .entity("templates\\entity\\entity.java.vm")
                // .controller("templates\\controller\\controller.java.vm")
                // .service(
                //         "templates\\service\\service.java.vm",
                //         "templates\\service\\impl\\serviceImpl.java.vm"
                // )
                // .mapper("templates\\persistent\\mapper.java.vm")
                // .mapperXml("templates\\persistent\\xml\\mapper.xml.vm")
            })

            .templateEngine(new FreemarkerTemplateEngine())
            .execute();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屁仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值