代码生成器简单应用

注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码

在前面章节对 MyBatis Plus 的 AutoGenerator 代码生成器有了一个简单的认识,并且介绍了怎样安装它们的 Maven 依赖。本文将使用 FreeMarker 作为代码生成器的模板引擎,添加如下依赖:

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
</dependency>

示例代码

下面示例将生成“user”数据表的 controller、mapper、entity、service 代码。代码如下:

package com.hxstrive.mybatis_plus.generator.demo1;

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 MysqlGenerator {

    public static void main(String[] args) {
        String userDir = System.getProperty("user.dir");
        System.out.println("userDir=" + userDir);

        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/mybatis-plus-learn/src/main/java");
        gc.setAuthor("hxstrive"); // 作者名称
        gc.setBaseResultMap(true); // mapper.xml 生成 ResultMap
        gc.setBaseColumnList(true); // mapper.xml 生成 ColumnList
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_test?useSSL=false");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("aaaaaa");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.hxstrive.mybatis.auto");
        mpg.setPackageInfo(pc);

        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setInclude("user");
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }

}

运行结果:

userDir=D:\learn\JavaDatabase\MyBatis\mybatis-workspaces
22:11:23.487 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...==========================
22:11:24.669 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 创建目录: [D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\entity]
22:11:24.672 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 创建目录: [D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\controller]
22:11:24.674 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 创建目录: [D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\mapper]
22:11:24.689 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 创建目录: [D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\service\impl]
22:11:25.416 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模板:/templates/entity.java.ftl;  文件:D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\entity\User.java
22:11:25.456 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模板:/templates/mapper.java.ftl;  文件:D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\mapper\UserMapper.java
22:11:25.466 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模板:/templates/service.java.ftl;  文件:D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\service\IUserService.java
22:11:25.474 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模板:/templates/serviceImpl.java.ftl;  文件:D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\service\impl\UserServiceImpl.java
22:11:25.493 [main] DEBUG com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine - 模板:/templates/controller.java.ftl;  文件:D:\learn\JavaDatabase\MyBatis\mybatis-workspaces/mybatis-plus-learn/src/main/java\com\hxstrive\mybatis\auto\controller\UserController.java
22:11:25.493 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================文件生成完成!!!==========================

生成的代码效果图如下:


说说我的看法
全部评论(

谢谢分享

回复:

谢谢支持!

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号