Mybatis PLUS代码生成器generate

一、2.3版本

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>2.3</version>
</dependency>

二、生成代码

Generate.java

package com;

import com.baomidou.mybatisplus.enums.IdType;
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;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class Generate {

    public static void main(String[] args) {
        generate();
    }

    public static void generate(){
        AutoGenerator autoGenerator = new AutoGenerator();
        GlobalConfig globalConfig = new GlobalConfig();
        //作者
        globalConfig.setAuthor("张三");
        globalConfig.setActiveRecord(true);
        globalConfig.setBaseColumnList(true);
        globalConfig.setBaseResultMap(true);
        globalConfig.setEnableCache(false);
        //文件生成路径
        globalConfig.setOutputDir("D:\\generate");
        globalConfig.setIdType(IdType.AUTO);
        autoGenerator.setGlobalConfig(globalConfig);

        //数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("root");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/my?serverTimezone=GMT%2B8&useSSL=false");
        autoGenerator.setDataSource(dataSourceConfig);

        //策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true);
        strategyConfig.setDbColumnUnderline(true);
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        //泛指前缀下的所有表
        strategyConfig.setTablePrefix("t_");
        //指定具体表
        strategyConfig.setInclude("t_org", "t_user");
        autoGenerator.setStrategy(strategyConfig);

        //包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.my");
        packageConfig.setController("controller");
        packageConfig.setMapper("mapper");
        packageConfig.setService("service");
        packageConfig.setEntity("entity");
        autoGenerator.setPackageInfo(packageConfig);

        //生成代码
        autoGenerator.execute();
    }

}

三、3.5.1版本

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>

四、生成代码

Generate.java

package com;

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.engine.FreemarkerTemplateEngine;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Generate {

    private static final String URL = "jdbc:mysql://localhost:3306/?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "root";
    // 项目根路径。生成结果如:D:\generate
    private static final String projectRootPath = "D:\\generate";
    // 父包名。用于生成的java文件的import。替换为系统的包名
    private static final String parentPackageName = "com.my";

    /**
     * 执行此处
     */
    public static void main(String[] args) {
        generate();
    }

    protected static void generate() {
        // 包路径
        String packagePath = projectRootPath + "\\code";
        // XML文件的路径
        String mapperXmlPath = projectRootPath + "\\xml";
        // 开始执行代码生成
        FastAutoGenerator.create(URL, USERNAME, PASSWORD)
            // 1. 全局配置
            .globalConfig(builder -> builder
            // 作者名称
            .author("Demo")
            // 开启覆盖已生成的文件。注释掉则关闭覆盖。
            // .fileOverride()
            // 禁止打开输出目录。注释掉则生成完毕后,自动打开生成的文件目录。
            .disableOpenDir()
            // 指定输出目录。如果指定,Windows生成至D盘根目录下,Linux or MAC 生成至 /tmp 目录下。
            .outputDir(packagePath)
            // 开启swagger2.注释掉则默认关闭。
            .enableSwagger()
            // 指定时间策略。
            .dateType(DateType.TIME_PACK)
            // 注释时间策略。
            .commentDate("yyyy-MM-dd")
        )
        // 2. 包配置
        .packageConfig((scanner, builder) -> builder
            // 设置父表名
            .parent(parentPackageName)
            .moduleName(scanner.apply("请输入模块名:"))
            // mapper.xml 文件的路径。单模块下,其他文件路径默认即可。
            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperXmlPath))
        )
        // 3. 策略配置
        .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔;如生成所有表,请输入【all】:")))
            // 阶段1:Entity实体类策略配置
            .entityBuilder()
            .superClass(MyEntity.class) //改为自己封装的实体对应的固定项
            .addIgnoreColumns("created_at","created_by","updated_at","updated_by","deleted")
            // 开启生成实体时生成字段注解。
            // 会在实体类的属性前,添加[@TableField("nickname")]
            .enableTableFieldAnnotation()
            // 阶段2:Mapper策略配置
            .mapperBuilder()
            // 开启 @Mapper 注解。
            // 会在mapper接口上添加注解[@Mapper]
            .enableMapperAnnotation()
            // 启用 BaseResultMap 生成。
            // 会在mapper.xml文件生成[通用查询映射结果]配置。
            .enableBaseResultMap()
            // 启用 BaseColumnList。
            // 会在mapper.xml文件生成[通用查询结果列 ]配置
            .enableBaseColumnList()
            // 阶段4:Controller策略配置
            .controllerBuilder()
            // 会在控制类中加[@RestController]注解。
            .enableRestStyle()
            // 开启驼峰转连字符
            .enableHyphenStyle()
            .build()
        )
        // 4. 模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
        //.templateEngine(new BeetlTemplateEngine())
        .templateEngine(new FreemarkerTemplateEngine())
        // 5. 执行
        .execute();
    }

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

}

在这里插入图片描述

OK,就这些吧。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

参考链接:
https://zhuanlan.zhihu.com/p/686967462

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MyBatis Plus 代码生成器支持使用 SQLite 数据库,只需要在配置文件中指定相应的 JDBC 驱动和连接信息即可。以下是一份示例配置文件: ``` # 数据源配置 spring.datasource.url=jdbc:sqlite:/path/to/db/file.db spring.datasource.driver-class-name=org.sqlite.JDBC spring.datasource.username= spring.datasource.password= # MyBatis Plus 配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity mybatis-plus.global-config.id-type=auto mybatis-plus.global-config.db-config.logic-delete-value=1 mybatis-plus.global-config.db-config.logic-not-delete-value=0 # 代码生成器配置 mybatis-plus.generator.global-config.author=yourname mybatis-plus.generator.global-config.output-dir=/path/to/generate/code mybatis-plus.generator.global-config.file-override=true mybatis-plus.generator.global-config.enable-cache=false mybatis-plus.generator.strategy.super-entity-class=yourpackage.BaseEntity mybatis-plus.generator.strategy.super-service-class=yourpackage.BaseService mybatis-plus.generator.strategy.super-service-impl-class=yourpackage.BaseServiceImpl mybatis-plus.generator.strategy.super-mapper-class=yourpackage.BaseMapper mybatis-plus.generator.strategy.super-controller-class=yourpackage.BaseController mybatis-plus.generator.strategy.naming=underline_to_camel mybatis-plus.generator.strategy.column-naming=underline_to_camel mybatis-plus.generator.strategy.entity-boolean-column-remove-prefix=true mybatis-plus.generator.strategy.entity-table-field-annotation-enable=true mybatis-plus.generator.strategy.entity-lombok-model=true mybatis-plus.generator.strategy.entity-serializable=true mybatis-plus.generator.strategy.entity-builder-model=true mybatis-plus.generator.strategy.entity-all-lombok-models=true mybatis-plus.generator.strategy.entity-serializable=false mybatis-plus.generator.strategy.entity-boolean-column-remove-prefix=true mybatis-plus.generator.strategy.entity-table-field-annotation-enable=true mybatis-plus.generator.strategy.entity-lombok-model=true mybatis-plus.generator.strategy.entity-serializable=true mybatis-plus.generator.strategy.entity-builder-model=true mybatis-plus.generator.strategy.entity-all-lombok-models=true mybatis-plus.generator.strategy.entity-serializable=false mybatis-plus.generator.strategy.entity-boolean-column-remove-prefix=true mybatis-plus.generator.strategy.entity-table-field-annotation-enable=true mybatis-plus.generator.strategy.entity-lombok-model=true mybatis-plus.generator.strategy.entity-serializable=true mybatis-plus.generator.strategy.entity-builder-model=true mybatis-plus.generator.strategy.entity-all-lombok-models=true mybatis-plus.generator.strategy.include=table1,table2 mybatis-plus.generator.strategy.exclude=table3,table4 mybatis-plus.generator.template.mapper=/templates/mapper.xml mybatis-plus.generator.template.entity=/templates/entity.java mybatis-plus.generator.template.service=/templates/service.java mybatis-plus.generator.template.service-impl=/templates/serviceImpl.java mybatis-plus.generator.template.controller=/templates/controller.java ``` 在上面的配置文件中,需要注意以下几点: 1. 数据源配置中需要指定 SQLite 数据库的连接信息,包括数据库文件路径和 JDBC 驱动类名。 2. MyBatis Plus 配置中需要指定 Mapper 文件的存放路径、实体类的包名和 ID 自动生成方式等。 3. 代码生成器配置中需要指定代码生成的基础配置,包括作者名、输出目录、是否覆盖已有文件等。 4. 策略配置中需要指定生成代码的规则和模板文件,包括实体类的父类、命名策略、是否使用 Lombok 等。 根据实际需求修改配置文件后,执行以下命令即可生成代码: ``` java -jar mybatis-plus-generator.jar -configFile generator-config.xml ``` 其中 `mybatis-plus-generator.jar` 是 MyBatis Plus 代码生成器的可执行文件,`generator-config.xml` 是配置文件的路径。执行命令后,代码生成器会根据配置文件中的规则和模板文件生成相应的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

message丶小和尚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值