随笔:MybatisPlus代码生成器(新)

Mybatis-Plus

引入pom依赖

<!-- SpringMVC -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.2.RELEASE</version>
</dependency>

<!-- mysql 驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
    <scope>runtime</scope>
</dependency>

<!-- mybatisPlus 依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

<!-- mybatisplus 生成器 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>

<!-- Freemarker 引擎模板 -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.18</version>
</dependency>

<!-- swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>

代码生成器源码

public class Generator {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mybatis_plus_db?useUnicode=true&serverTimezone=GMT&characterEncoding=utf-8", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("LangLingFu") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .disableOpenDir()// 禁止打开输出目录,默认值:true
                            .commentDate("yyyy-MM-dd HH:mm")// 注释日期,默认值: yyyy-MM-dd
                            .outputDir("D://"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.mp") // 设置父包名,默认值:com.baomidou
                            .moduleName("samples") // 设置父包模块名,默认值:无
                            .entity("entity")// Entity 包名,默认值:entity
                            .service("service")// Service 包名,默认值:service
                            .serviceImpl("service.impl")// Service Impl 包名,默认值:service.impl
                            .mapper("mapper")// Mapper 包名,默认值:mapper
                            .xml("mapper.xml")// Mapper XML 包名,默认值:mapper.xml
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://")) // 路径配置信息
                            .controller("controller");// Controller 包名,默认值:controller
                })
                .strategyConfig(builder -> {
                    builder.addInclude("t_user", "tb_user2") // 设置需要生成的表名
                            .addTablePrefix("t_", "tb_")// 设置过滤表前缀
                            .entityBuilder().disableSerialVersionUID()// 禁用生成 serialVersionUID,默认值:true
                                            .enableChainModel()// 开启链式模型,默认值:false
                                            .enableLombok()// 开启 lombok 模型,默认值:false
                                            .enableTableFieldAnnotation()// 开启生成实体时生成字段注解,默认值:false
                                            .enableActiveRecord()// 开启 ActiveRecord 模型,默认值:false
//                                            .versionColumnName("version")// 乐观锁字段名(数据库)
//                                            .logicDeleteColumnName("deleted")// 逻辑删除字段名(数据库)
//                                            .addTableFills(new Column("create_time", FieldFill.INSERT))
//                                            .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE))
                            .mapperBuilder().superClass(BaseMapper.class)// 设置父类
                            				.enableMapperAnnotation()// 开启 @Mapper 注解,默认值:false
                            				.enableBaseResultMap()// 启用 BaseResultMap 生成,默认值:false
                            				.enableBaseColumnList()// 启用 BaseColumnList,默认值:false
                            .controllerBuilder().enableHyphenStyle()// 开启驼峰转连字符,默认值:false
                            					.enableRestStyle();// 开启生成@RestController 控制器,默认值:false
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 引擎模板
                .execute();
    }
}

操作时遇到的小问题

1、运行方法时控制台输出日志乱码

解决方法:在 Run -> Edit Configurations 那里 Add VM options 加上如下配置

-Dfile.encoding=UTF-8

设置 VM options

2、生成的代码不整齐,逼死强迫症

Velocity 引擎模板

原因:未设置模板引擎时,默认使用 Velocity 引擎模板(虽然不影响使用,但极度影响观感,呐,就是上面这样)

解决方法:使用 Freemarker 引擎模板

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_秋牧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值