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

yizhihongxing

首先,我们需要了解一下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日

相关文章

  • Linux系统中怎么设置java环境变量?

    在Linux系统中设置Java环境变量,需要进行以下几个步骤: 1. 安装Java 首先需要在Linux系统中安装Java。可以去Java官网下载对应版本的Java安装包。下载完后,使用命令行工具进入安装包所在目录,执行以下命令进行安装: sudo tar zxvf jdk-xu-xu.tar.gz -C /usr/local/ 其中,jdk-xu-xu.t…

    Java 2023年5月26日
    00
  • SpringBoot读取资源目录中JSON文件的方法实例

    下面是关于”SpringBoot读取资源目录中JSON文件的方法实例”的完整攻略: 1.准备工作 首先需要在Spring Boot项目中创建一个资源目录,在其中添加一个JSON文件。 例如,在src/main/resources目录下创建json目录,然后在json目录下创建example.json文件,如下图所示: src/main/resources/j…

    Java 2023年5月26日
    00
  • SpringBoot异常错误页面实现方法介绍

    让我来详细讲解“SpringBoot异常错误页面实现方法介绍”的完整攻略。 1. 实现方式介绍 SpringBoot提供了两种方式来实现异常错误页面: 1.1 自定义ErrorController 通过自定义ErrorController的方式,我们可以根据异常类型,异常状态码或者URL地址来进行异常信息的处理和跳转。这个方法需要手动实现异常信息的处理和跳转…

    Java 2023年5月27日
    00
  • Java面向对象之继承、构造方法、重写、重载

    Java是一门面向对象的编程语言,这意味着它支持面向对象的编程风格及相关的特性,如封装、继承和多态性。本文将讲解Java面向对象中的继承、构造方法、重写和重载的具体原理和应用。 1. 继承 1.1 继承概述 继承是面向对象编程中的一种重要机制,它允许我们基于已有的类创建一个新类,这个新类继承了原有类的属性和行为,并且可以在此基础上添加新的属性和行为。被继承的…

    Java 2023年5月26日
    00
  • 用JavaScript和注册表脚本实现右键收藏Web页选中文本

    为了实现右键收藏Web页选中文本的功能,我们需要使用JavaScript和注册表脚本。 步骤如下: 创建一个新的注册表脚本文件,将其保存为 .reg 文件类型。 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Collect] @="收藏选中文本" [HKEY…

    Java 2023年6月15日
    00
  • Java实战之吃货联盟订餐系统

    Java实战之吃货联盟订餐系统攻略 系统需求 用户可以查看菜单列表信息 用户可以注册账号 用户可以登录进入系统 用户可以选择菜品下单 用户可以查看订单列表 用户可以修改个人信息和密码 技术选型 使用Spring Boot进行快速开发 使用MyBatis进行数据库操作 使用Thymeleaf进行前端页面渲染 使用Spring Security进行权限管理 使用…

    Java 2023年5月24日
    00
  • Spring Boot启动及退出加载项的方法

    一、SpringBoot启动及退出加载项的方法 SpringBoot是Spring开发的一款快速应用开发框架,其内置了很多工具和插件,可以让我们非常方便地进行开发。当我们启动SpringBoot应用时,会默认加载一些列的启动项,而这些启动项实际上也是可以自定义的。同样地,当我们停止SpringBoot应用时,也会默认执行一些列的退出项,这些退出项也同样是可以…

    Java 2023年5月15日
    00
  • SpringBoot优雅地实现全局异常处理的方法详解

    首先,我们需要在Spring Boot项目中添加全局异常处理器。具体步骤如下: 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</…

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