017-2022最新版MyBatisplus代码生成器

🧑‍🎓 个人主页:Silence Lamb

📖 本章内容:【MyBatis-Plus代码生成器


📢🌥️如果文章对你有帮助【关注👍点赞❤️收藏⭐】

🌳Gitee仓库地址:👉🏽2022最新版MyBatisplus代码生成器


🛸代码生成器-V1

1️⃣添加依赖

在这里插入图片描述

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.baomidou</groupId>
                    <artifactId>mybatis-plus-generator</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons.io.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

2️⃣编写配置文件

# 设置输出目录
path: E://JAVA//TemplateAdmin//management//src//main//java
# 设置mapperXml生成路径
pathMapperXml: E://JAVA//TemplateAdmin//management//src//main//resources//mapper
# 作者名
author: 天才小狐狸
# 注释时间
commentDate: yyyy年MM月dd日
# 数据库地址
databaseIp: 49.235.*******
# 数据库端口后
spot: 3306
# 数据库名字
databaseName: community-management
# 数据库账号名
mysqlUser: test
# 数据库密码
mysqlPassword: 123456
# 设置父包名
parent: com.michale
# 设置父包模块名
moduleName: management
# 设置实体层
entity: entity
# 设置服务层
service: service
# 设置实现层
serviceImpl: service.impl
# 设置mapper层
mapper: mapper
# 设置controller层
controller: controller
# 其他层设置
other: common
# 设置需要生成的表名
tableName: tb_community
# 设置是否生成全部表名
allTableName: false
# 设置过滤表前缀
tablePrefix: tb_
# 设置自动填充的字段
create_time: create_time
update_time: update_time

4️⃣读取配置文件信息

/**
 * Author: 花棉袄
 * Date: 2022年08月20日
 * Describe: 获取配置信息
 */
public class GetProperties {
    public static Configuration getConfig() {
        try {
            return new PropertiesConfiguration("application-v1-pack.yml");
        } catch (ConfigurationException e) {
            throw new RRException("获取配置文件失败,", e);
        }
    }
}

5️⃣生成代码工具类

package com.michale.generator.v1.utils;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.fill.Column;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import static com.michale.generator.v1.utils.GetProperties.getConfig;

/**
 * Author: 花棉袄
 * Date: 2022年08月20日
 * Describe: 生成代码
 */
public class AutoGenerator implements Serializable {
    public static void Generator() throws IOException {

        Configuration config = getConfig();

        //数据库IP地址
        String databaseIp = config.getString("databaseIp");
        //数据库端口号
        String spot = config.getString("spot");
        //数据库名
        String databaseName = config.getString("databaseName");
        //数据库账号名
        String mysqlUser = config.getString("mysqlUser");
        //数据库密码
        String mysqlPassword = config.getString("mysqlPassword");
        //Mysql url配置 只需选择 String mysql = mysql5;或者 String mysql = mysql8; 其他无需修改
        String mysqlBase = "jdbc:mysql://" + databaseIp + ":" + spot + "/" + databaseName;
        String mysql5Base = "?characterEncoding=utf-8&useSSL=false";
        String mysql8Base = "?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false";

        String mysql5 = mysqlBase + mysql5Base;
        String mysql8 = mysqlBase + mysql8Base;
        //选择mysql5或者mysql8    String mysql = mysql5;或者 String mysql = mysql8;
        String mysql = mysql5;

        FastAutoGenerator.create(mysql, mysqlUser, mysqlPassword)
                .globalConfig(builder -> {
                    builder.author(config.getString("author")) // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .disableOpenDir()//关闭资源管理器
                            .outputDir(config.getString("path")) // 指定输出目录
                            .commentDate(config.getString("commentDate"))//注释时间
                    ;
                })
                .packageConfig(builder -> {
                    builder.parent(config.getString("parent")) // 设置父包名
                            .moduleName(config.getString("moduleName")) // 设置父包模块名
                            .entity(config.getString("entity")) //设置实体层
                            .service(config.getString("service")) //设置服务层
                            .serviceImpl(config.getString("serviceImpl")) //设置实现层
                            .mapper(config.getString("mapper")) //设置mapper层
                            .controller(config.getString("controller")) //设置controller层
                            .other(config.getString("other")) //其他层设置
                            .pathInfo(Collections.singletonMap(OutputFile.xml, config.getString("pathMapperXml"))); // 设置mapperXml生成路径
                })

                .strategyConfig((scanner, builder) -> {
                    builder.addInclude(check(config.getString("tableName"))) // 设置需要生成的表名
                            .addTablePrefix(config.getString("tablePrefix"))
                            .serviceBuilder() //开启service策略配置
                            .formatServiceFileName("%sService") //取消Service前的I
                            .controllerBuilder() //开启controller策略配置
                            .enableRestStyle() //配置restful风格
                            .enableHyphenStyle() //url中驼峰转连字符
                            .entityBuilder() //开启实体类配置
                            .addTableFills(new Column(config.getString("create_time"), FieldFill.INSERT)) //配置添加自动填充字段
                            .addTableFills(new Column(config.getString("update_time"), FieldFill.INSERT_UPDATE)) //添加和更新配置自动填充字段
                            .enableLombok() //开启lombok
                            .controllerBuilder().enableHyphenStyle().enableRestStyle()

                    //.enableChainModel()//开启lombok链式操作@Accessors(chain = true)
                    ;
                }).templateConfig(builder -> builder
                        .entity("/templates/v1/entity.java.vm")
                        .service("/templates/v1/service.java.vm")
                        .serviceImpl("/templates/v1/serviceImpl.java.vm")
                        .mapper("/templates/v1/mapper.java.vm")
                        .xml("/templates/v1/mapper.xml.vm")
                        .controller("/templates/v1/controller.java.vm")
                        .build())// 使用Freemarker 引擎模板,默认的是Velocity引擎模板
                .execute();

    }

    //输入处理多个表的情况
    public static List<String> check(String allTableName) {

        if (StringUtils.equalsIgnoreCase("true", allTableName)) {
            return getTables("all");
        } else {
            List<String> strings = new LinkedList<>();
            strings.add(getConfig().getString("tableName"));
            return strings;
        }

    }

    protected static List<String> getTables(String tables) {
        return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
    }
}

6️⃣控制层访问

/**
 * Author:  花棉袄
 * Date:  2022年08月18日
 * Describe:
 */
@RestController
@RequestMapping("/v1")
public class GeneratorController {
    @GetMapping("/generator")
    @ApiOperation(value = "", notes = "")
    public Result generator() throws IOException {
        System.out.println(getConfig().getString("author"));
        AutoGenerator.Generator();
        return new Result(true, 200, "创建完成");
    }
}

在这里插入图片描述

7️⃣自定义代码模板

🌳 自定义代码模板👉🏽点我下载
🌳 通用常量信息👉🏽点我下载


🏅 全栈小狐狸的逆袭之路:📢💨Java学习路线
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis Plus代码生成器的格式如下: 1. 导入必要的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>最新版本</version> </dependency> ``` 2. 创建代码生成器配置类: ```java import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; public class CodeGenerator { public static void main(String[] args) { // 创建代码生成器对象 AutoGenerator generator = new AutoGenerator(); // 数据源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); // 设置数据库连接信息 dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"); dataSourceConfig.setDriverName("com.mysql.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("123456"); generator.setDataSource(dataSourceConfig); // 全局配置 GlobalConfig globalConfig = new GlobalConfig(); // 设置生成文件的输出目录 globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 设置作者 globalConfig.setAuthor("Your Name"); // 是否覆盖已有文件 globalConfig.setFileOverride(false); // 是否打开输出目录 globalConfig.setOpen(false); generator.setGlobalConfig(globalConfig); // 包配置 PackageConfig packageConfig = new PackageConfig(); // 设置父包名 packageConfig.setParent("com.example.demo"); generator.setPackageInfo(packageConfig); // 策略配置 StrategyConfig strategyConfig = new StrategyConfig(); // 设置需要生成的表名,多个表用逗号分隔 strategyConfig.setInclude("user", "order"); // 设置实体类命名方式 strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 设置列名命名方式 strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); generator.setStrategy(strategyConfig); // 执行生成代码 generator.execute(); } } ``` 3. 修改数据库连接信息和生成配置,例如设置数据库URL、用户名、密码等。 4. 运行代码生成器的`main`方法,即可生成相应的代码文件。 请注意,上述示例中的配置仅供参考,具体根据项目需要进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Silence Lamb

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

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

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

打赏作者

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

抵扣说明:

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

余额充值