当前位置: 首页 > news >正文

Mybatis-Plus(核心功能篇 ==> 代码生成器(新版)

本章导学:

  • 什么是MP的代码生成器
  • 基于SpringBoot实现MP代码生成器
    • 创建SpringBoot工程
    • 导入所需的依赖 
    • 编写yml配置文件
    • 定制MP代码生成器模板 

注:本章针对的为mybatis-plus-generator 3.5.1 及其以上版本


一、什么是MP的代码生成器

官网说明:AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

官网网址如下:代码生成器(新) | MyBatis-Plus

二、基于SpringBoot实现MP代码生成器

2.1、创建SpringBoot工程

选择 FILE--NEW PROJECT 

这里勾选WEB骨架

 2.2、导入所需的依赖 

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- mysql连接驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>

        <!-- Mybatis-Plus坐标 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

        <!-- MP代码生成器所需要的依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>

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

        <!-- lombok实体类快速开发 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.3、编写yml配置文件 

#Tomcat端口号
server:
  port: 80

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/db_brand
      username: root
      password: 123456



mybatis-plus:
  #mapper文件的位置
  mapper-locations: classpath:mapper/*.xml
  #起别名
  type-aliases-package: com.brrbaii.pojo
  #开启日志
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #为实体类增加前缀
#  global-config:
#    db-config:
#      table-prefix: tb_

#运行日志,默认INFO级别
#logging:
#  level: debug


2.4、定制MP代码生成器模板 

 选择:File---Setting---Editor---File and Code Templates

模板内容如下:

package com.brrbaii;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Collections;
public class FastAuto {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/db_brand", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("brrbaii") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("D://Auto"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.brrbaii") // 设置父包名
//                            .moduleName("system") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://Auto")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user") // 设置需要生成的表名
                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }

}

直接运行这个类就大功告成了,参数设置看注释

相关文章:

  • Intel汇编-LOOP循环检查ECX含零值
  • DBNet学习笔记
  • 1、搭建环境
  • 基于Java+Spring+vue+element社区疫情服务平台设计和实现
  • 【Leetcode】剑指Offer 34:二叉树中和为某一值的路径
  • CockroachDB架构-复制层
  • Netty 入门学习(1)
  • Android手部检测和手势识别(含训练代码+Android源码+手势识别数据集)
  • 【NLP】第4章 从头开始预训练 RoBERTa 模型
  • 第3章 循环神经网络
  • 机器学习入门八
  • java毕业设计流浪动物救助公益平台源码+lw文档+mybatis+系统+mysql数据库+调试
  • 物联网IOT面临挑战
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • Intel汇编-奇偶标志位测试
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • docker python 配置
  • Hexo+码云+git快速搭建免费的静态Blog
  • java2019面试题北京
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Python利用正则抓取网页内容保存到本地
  • 阿里云购买磁盘后挂载
  • 技术:超级实用的电脑小技巧
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 全栈开发——Linux
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用putty远程连接linux
  • 数组大概知多少
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)(1.13) SiK无线电高级配置(六)
  • (4)STL算法之比较
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (论文阅读11/100)Fast R-CNN
  • (三十五)大数据实战——Superset可视化平台搭建
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)认识微服务
  • (转)winform之ListView
  • .NET : 在VS2008中计算代码度量值
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .Net(C#)自定义WinForm控件之小结篇
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .Net中ListT 泛型转成DataTable、DataSet
  • 。Net下Windows服务程序开发疑惑
  • @NestedConfigurationProperty 注解用法
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [ SNOI 2013 ] Quare
  • [ 转载 ] SharePoint 资料