使用mybatis-plus-generator进行代码自动生成的方法

首先,我们需要了解一下mybatis-plus-generator的基本概念和用法。

mybatis-plus-generator是mybatis-plus框架中的一个代码自动生成工具,它能够根据数据库中的表结构自动生成实体类、Mapper接口、以及对应的XML文件等。使用mybatis-plus-generator可以大大提高我们的开发效率。

一、配置mybatis-plus-generator依赖

在使用mybatis-plus-generator之前,我们需要在项目中引入对应的依赖,比如:

<!--引入mybatis-plus-generator依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.3</version>
</dependency>

二、配置生成代码所需的参数

在项目中配置好mybatis-plus-generator依赖之后,我们还需要在项目中添加一个配置文件,用于设置代码生成的相关参数。一般而言,我们可以使用yml文件或者properties文件来进行配置。

以下是一个基本的配置文件示例:

# 数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: 123456

# mybatis-plus配置
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted
      id-type: auto
      logic-delete-value: 1
      logic-not-delete-value: 0
  generator:
    outputDir: D:/workspace/mybatis-plus-generator
    author: yourname
    fileOverride: true
    open: false
    basePackage: com.example.mybatisplus
    mapperPackage: mapper
    xmlPackage: mapper.xml
    servicePackage: service
    serviceImplPackage: service.impl
  auto-fill:
    enable: true
    create: false
    update: false
    delete: false
  strategy:
    tablePrefix: tb_
    naming:
      columnNaming: no_change
    exclude:
      # 排除的表名
      - tb_user_log

其中,主要要关注的是generator节点的配置,我们可以通过配置该节点下的属性来控制代码生成的路径、作者、是否覆盖等相关信息。

三、运行mybatis-plus-generator生成代码

在完成配置文件的配置之后,我们就可以启动mybatis-plus-generator来自动生成代码了。一般情况下,我们可以编写一个启动类,然后在该启动类中调用mybatis-plus-generator的API来生成代码。

以下是一个基本的示例启动类:

package com.example.mybatisplus.generator;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfigUtils;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

/**
 * mybatis-plus-generator代码自动生成启动类
 */
public class MybatisPlusGeneratorApplication {

    public static void main(String[] args) {
        // 1.创建代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();

        // 2.设置数据源
        autoGenerator.setDataSource(new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false", "root", "123456").driver(DbType.MYSQL.getDriverClassName()).build());

        // 3.设置全局配置
        GlobalConfig globalConfig = GlobalConfigUtils.getDefaultGlobalConfig();
        globalConfig.setAuthor("yourname");
        globalConfig.setOutputDir("D:/workspace/mybatis-plus-generator");
        globalConfig.setFileOverride(true);
        globalConfig.setOpen(false);
        globalConfig.setIdType(IdType.AUTO);
        globalConfig.setDateType(DateType.ONLY_DATE);
        autoGenerator.setGlobalConfig(globalConfig);

        // 4.设置包名配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.example.mybatisplus");
        packageConfig.setMapper("mapper");
        packageConfig.setXml("mapper.xml");
        packageConfig.setEntity("entity");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        autoGenerator.setPackageInfo(packageConfig);

        // 5.设置策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("tb_user");
        strategyConfig.setTablePrefix("tb_");
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.no_change);
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setLogicDeleteFieldName("deleted");
        strategyConfig.setVersionFieldName("version");
        autoGenerator.setStrategy(strategyConfig);

        // 6.选择freemarker模板引擎
        autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());

        // 7.执行代码生成操作
        autoGenerator.execute();
    }
}

在启动该启动类之后,mybatis-plus-generator就会根据我们的配置文件来生成对应的代码。

以上便是使用mybatis-plus-generator进行代码自动生成的完整攻略。下面给出两个实际的示例说明。

示例1:生成单表的CURD代码

假设我们有一张名为tb_user的表,我们可以通过以下配置来生成对应的CURD代码:

mybatis-plus:
  generator:
    outputDir: D:/workspace/mybatis-plus-generator
    author: yourname
    fileOverride: true
    open: false
    basePackage: com.example.mybatisplus
    mapperPackage: mapper
    xmlPackage: mapper.xml
    servicePackage: service
    serviceImplPackage: service.impl
  strategy:
    tablePrefix: tb_
    naming:
      columnNaming: no_change

其中,我们只需要设置需要生成代码的表名即可:

StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("tb_user");

示例2:生成多表的代码

假设我们有多张表需要生成对应的代码,我们可以通过以下配置来实现:

mybatis-plus:
  generator:
    outputDir: D:/workspace/mybatis-plus-generator
    author: yourname
    fileOverride: true
    open: false
    basePackage: com.example.mybatisplus
    mapperPackage: mapper
    xmlPackage: mapper.xml
    servicePackage: service
    serviceImplPackage: service.impl
  strategy:
    tablePrefix: tb_
    naming:
      columnNaming: no_change
    include:
      - tb_user
      - tb_role

其中,我们只需要在include节点下添加需要生成代码的表名即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用mybatis-plus-generator进行代码自动生成的方法 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 如何实现 Java SpringBoot 自动验证入参数据的有效性

    Java SpringBoot 通过javax.validation.constraints下的注解,实现入参数据自动验证如果碰到 @NotEmpty 否则不生效,注意看下 @RequestBody 前面是否加上了@Valid Validation常用注解汇总 Constraint 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释…

    Java 2023年4月18日
    00
  • 微信小程序下拉刷新界面的实现

    以下是关于微信小程序下拉刷新界面实现的完整攻略,包括两条实例说明。 一、基本概念 在介绍如何实现下拉刷新之前,需要了解一些基本概念: scroll-view组件:滚动视图,用于滚动展示长列表或区域。在小程序中,可以使用scroll-view组件实现下拉刷新。 下拉刷新函数:在scroll-view组件的bindscrolltolower属性中绑定一个触发事件…

    Java 2023年5月23日
    00
  • Java web数据可视化实现原理解析

    下面我会详细讲解“Java web数据可视化实现原理解析”的完整攻略。 Java web数据可视化实现原理解析 什么是数据可视化 数据可视化顾名思义就是将数据以可视化的方式展示出来,如图表、图像、地图等形式,以便更加直观地理解数据。在企业、政府等管理领域,数据可视化已经成为了非常重要的工具。 Java web实现数据可视化的原理 Java web实现数据可视…

    Java 2023年5月19日
    00
  • 记录一个使用Spring Data JPA设置默认值的问题

    下面是详细的讲解过程: 1. 背景 在使用Spring Data JPA进行开发中,我们可能会遇到需要给某个字段设置默认值的情况,但很多人可能不知道如何实现。本文将介绍如何使用Spring Data JPA设置默认值,并提供两个示例。 2. 解决方案 Spring Data JPA提供了多种设置默认值的方式,包括使用实体类构造方法、使用@PrePersist…

    Java 2023年6月1日
    00
  • hibernate测试时遇到的几个异常及解决方法汇总

    Hibernate测试时遇到的几个异常及解决方法汇总 在使用Hibernate进行开发时,我们常常会遇到各种异常以及错误提示,本文将总结一些常见的异常及其解决方法。 环境搭建异常:ClassNotFountException 在进行Hibernate的开发之前,我们需要搭建好相应的开发环境,如JDK、IDE、数据库等。如果其中的某一个组件环境没有搭建好,可能…

    Java 2023年5月19日
    00
  • 复选框和Struts2后台交互代码详解

    我们来详细讲解“复选框和Struts2后台交互代码详解”的完整攻略。 1. 复选框怎么用? 1.1 HTML中的复选框 在HTML中,复选框是通过input标签来定义的,type属性的值为checkbox。 <input type="checkbox" name="rememberMe" value="…

    Java 2023年5月20日
    00
  • Springboot详解线程池与多线程及阻塞队列的应用详解

    Spring Boot详解线程池与多线程及阻塞队列的应用详解 概述 在 Java 中使用线程池和多线程可以提高程序的并发处理能力,加快计算速度。Spring Boot 提供了良好的支持,本文将介绍 Spring Boot 中线程池与多线程及阻塞队列的应用,并通过示例说明。 线程池 线程池的作用 线程池可以减少线程的创建和销毁所带来的性能开销,并可以对并发执行…

    Java 2023年5月19日
    00
  • 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    全面解释Java中StringBuilder、StringBuffer、String类之间的关系 String类 定义 String类是Java中的一个类,用于表示一个不可变的Unicode字符序列。 特点 String类的实例是不可变的,即任何修改字符串的操作都会返回一个新字符串,这是因为Java中的字符串是被设计为不可变的。例如: String s1 =…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部