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

2023-05-16

Mybatis-Plus

  • 官网:https://baomidou.com

  • 代码生成器(新):https://baomidou.com/pages/779a6e

    适用版本:mybatis-plus-generator 3.5.1 及其以上版本,对历史版本不兼容!3.5.1 以下版本请参考代码生成器(旧)

  • 点此下载SpringBoot项目-MybatisPlus代码生成器(新)

引入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 引擎模板

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随笔:MybatisPlus代码生成器(新) 的相关文章

  • 引入MybatisPlus与实操

    文章目录 1 MybatisPlus概述2 快速入门2 1 步骤 3 配置日志 1 MybatisPlus概述 特色 特性 无侵入 xff1a 只做增强不做改变 xff0c 引入它不会对现有工程产生影响 xff0c 如丝般顺滑 损耗小 xf
  • mybatisplus使用LambdaQueryWrapper查询时怎么将查询结果中所有的id放入数组中

    可以使用LambdaQueryWrapper的listObjs方法来查询数据库中所有符合条件的记录的某一个字段 xff0c 并将这些字段值放入一个数组中 具体实现方法如下 xff1a span class hljs built in Lis
  • Mybatis和Mybatis-Plus的配置

    目录 一 springMVC中Mybatis的配置 1 添加 MyBatis 和 MyBatis Spring 的依赖 2 配置数据源 3 配置 MyBatis 4 编写 Mapper 接口和对应的 XML 文件 二 springnboot
  • 瑞吉外卖开发梳理及重点知识讲解

    一 项目导读 瑞吉外卖是一个单体架构 整体的业务逻辑也较为简单 如果刚学SpringBoot技术 想要通过项目练手 那这是一个很好的选择 不仅可以练习SpringBoot技术 还可以学习Mybatis Plus Redis 项目部署 服务器
  • @TableField介绍和使用

    1 TableField exist false 注解加载bean属性上 表示当前属性不是数据库的字段 但在项目中必须使用 这样在新增等使用bean的时候 mybatis plus就会忽略这个 不会报错 否则会报一个如下的异常 Error
  • BindingException: Invalid bound statement (not found)

    org apache ibatis binding BindingException Invalid bound statement not found com UserInfoMapper listByRole 报错描述 程序一直可以正常
  • 5.Mybatis-plus_乐观锁和悲观锁

    乐观锁 故名思意十分乐观 它总是认为不会出现问题 无论干什么不去上锁 如果出现了问题 再次更新值测试 悲观锁 故名思意十分悲观 它总是认为总是出现问题 无论干什么都会上锁 再去操作 乐观锁实现方式 取出记录时 获取当前 version 更新
  • MybatisPlus + 达梦数据库使用排序查询时,将null值放到最后

    1用户需求 查询结果 按照某些字段进行排序 将为null的值放到最后 按照更新时间排序 但是更新时间可能为null 因此将null的数据放到最后 2解决方案 最简单的方式 当然是下面这种直接在SQL最后面 NULLS LAST 但是问题是
  • mybatisPlus之getById和selectById查询不出结果

    最终导致查询不出结果的原因可能有多种 我这里说出我遇到的一种原因 希望对你有帮助 我是因为在数据库添加了一个字段 没有及时地更新mapper xml中的resultMap导致的 大晚上的写代码 脑子不太好使 2 最近又遇到了一种情况 我数据
  • spring boot 2.0.3 mybatis升级mybatis-plus

    项目原来是使用mybtais durid 现升级为mybatis plus2 3 durid mysql 官方文档地址 请注意 mybatis plus3 0 的配置有变化 请查看官网文档 可能是旧的 或demo 步骤如下 1 引入pom
  • mybatis-plus 自动代码生成

    最新mybatis plus 代码自动生成工具 创建一个springboot 项目 引入如下依赖
  • MyBatis-Plus是什么?为什么用?怎么用?

    1 MyBatis Plus是什么 官方是这样定义的 Mybatis Plus 简称MP 是一个 Mybatis 的增强工具 在 Mybatis 的基础上只做增强不做改变 为简化开发 提高效率而生 所谓的增强 就是已经封装好了一些crud
  • SpringCloud-Alibaba整合Nacos+Seata+Mybatis-Plus

    SpringCloud Alibaba整合Nacos Seata Mybatis Plus Seata Example 项目说明 准备工作 配置数据库 创建 undo log 表 创建 示例中 业务所需要的数据库表 启动 Seata Ser
  • MyBatis-Plus-Generator代码生成器(Version 3.5.1+)使用

    这几天研究了一下MyBatis Plus Generator新版本3 5 1 的使用 做个笔记方便自己使用 maven配置
  • 【MyBatis-Plus】之批量插入

    一 应用情景介绍 在实际的项目开发过程中 常常遇到批量保存数据的场景 当数据量比较少 比如只有几条数据的情况下 我们可以使用 for 循环来 insert 数据 但如果数据量比较多的情况下就不行 特别是并发的情况下 因为这样会增加数据库的负
  • mybatis-plus入坑指南

    简介 MyBatis Plus 简称 MP 是一个 MyBatis 的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率而生 特性 无侵入 只做增强不做改变 引入它不会对现有工程产生影响 如丝般顺滑 损耗小 启动即
  • mybatis-plus返回查询总记录数

    mybatis plus返回查询总记录数 mp框架提供了selectCount方法 来查询总记录数 需求 查找薪水大于3500 名字里有 小 的 员工的个数 sql实现 select count from t employee where
  • 为啥MyBatis-Plus 分页插件不生效?

    描述 项目中用到boot 整合 mybatis plus 个人在使用分页条件查询的时候一直查不出 total pages 终于找到原因了 环境
  • Mybatis-Plus insertBatch执行缓慢原因查询

    背景 最近在SpringCloud项目中 使用Mybatis Plus执行一个88万条左右的数据插入MySQL数据库的操作时 发现执行时长竟然长达2个小时 按理讲 MP框架执行如下批处理操作时 XXService insertBatch X
  • 记录我的第一个MyBatis-Plus例子

    第一个MyBatis Plus例子 灰常简单 特此记录 第一步 数据库表 第二步 pom引入jar包 第三步 启动类 实体类 application properties 在编写一个mapper接口 第四步 编写测试类 执行结果如下图所示代

随机推荐