幽兰生空谷
--绝世独自开

MyBatis-Plus快速入门(九)-代码自动生成器(新)

代码自动生成器

dao、pojo、service、controller都给我自己去编写完成!

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、

Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

安装依赖:

<!--代码生成器依赖-->
<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.28</version>
        <scope>compile</scope>
</dependency>

测试: 

package com.itheibai;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.Collections;
/**
 * 代码生成器
 */
public class ItheibaiCode {
    public static void main(String[] args) {
        //获取项目路径
        String projectPath = System.getProperty("user.dir");
        // 需要构建一个 代码自动生成器 对象
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8",
                        "root",
                        "123456")
                .globalConfig(builder -> {
                    builder.author("itheibai") // 作者名
                            //.enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .commentDate("yyyy-MM-dd") // 注释日期
                            .outputDir(projectPath + "/src/main/java"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.itheibai") // 父包名
                            .moduleName("sys") // 父包模块名,生成的代码在这个包下
                            .entity("pojo") // Entity 包名
                            .service("service") // Service 包名
                            .serviceImpl("service.impl") // Service Impl 包名
                            .mapper("dao") // mapper 包名
                            .xml("mapper") // Xml 包名,默认包名 mapper.xml
                            .controller("controller") // Controller 包名
                            .other("other") // other 包名
                            .pathInfo(Collections.singletonMap(OutputFile.mapper,projectPath + "/src/main/java/com/itheibai/sys/dao")) // 配置mapper生成路径
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,projectPath + "/src/main/resources/mapper")); // 配置mapper.xml生成路径,springboot会默认扫描
                })
                .strategyConfig(builder -> {
                    builder.addInclude("t_user_pojo") // 增加表匹配
                            .addTablePrefix("t_") // 过滤表前缀,如:生成的实体类名UserPojo
                            .entityBuilder()
                            .disableSerialVersionUID() // 禁用生成
                            .enableLombok()
                            .enableTableFieldAnnotation() // 开启生成实体时生成字段注解
                            .versionColumnName("version") // 乐观锁字段名(数据库)
                            .versionPropertyName("version") // 乐观锁属性名(实体)
                            .logicDeleteColumnName("deleted") // 逻辑删除字段名(数据库)
                            .logicDeletePropertyName("deleted") // 逻辑删除属性名(实体)
                            .addIgnoreColumns("age") // 添加忽略字段
                            .addTableFills(new Column("create_time", FieldFill.INSERT))
                            .addTableFills(new Column("update_time",FieldFill.INSERT_UPDATE))
                            .idType(IdType.AUTO) // 全局主键类型
                            .serviceBuilder()
                            //.superServiceClass(BaseService.class) // 设置接口类的父类
                            //.superServiceImplClass(BaseServiceImpl.class) // 设置接口实现类的父类
                            .formatServiceFileName("%sService") // 格式化Service接口文件名称
                            .formatServiceImplFileName("%sServiceImpl") // 格式化 ServiceImpl 实现类文件名称
                            .mapperBuilder()
                            .superClass(BaseMapper.class) // 设置mapper接口的父类
                            .enableMapperAnnotation() // 开启 @mapper 注解
                            .formatMapperFileName("%sDao") // 格式化 mapper 文件名称
                            .controllerBuilder()
                            .enableRestStyle(); // 开启生成 @RestController
                })
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}

生成的目录结构

赞(3) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MyBatis-Plus快速入门(九)-代码自动生成器(新)》
文章链接:https://www.itheibai.com/archives/832
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册