Mybatis Plus 代码生成器的实现

MyBatis Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上新增了很多实用的功能,其中的代码生成器可以帮助我们快速生成基础的代码,提升开发效率。

MyBatis Plus 代码生成器是通过配置数据库连接信息、配置表、配置输出路径等,生成对应的 Java 代码,包括实体类、DAO 接口、以及对应的 XML 映射文件,同时也支持生成 Controller、Service、ServiceImpl 等代码。

以下是 MyBatis Plus 代码生成器实现的详细攻略:

1. 添加依赖

在 maven 项目中,我们需要将 MyBatis Plus 代码生成器添加到 pom.xml 中:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.2.0</version>
</dependency>

2. 编写代码生成器类

编写代码生成器类,通过配置数据库连接信息、配置表、配置输出路径等,生成对应的 Java 代码。

public class CodeGenerator {

    // 数据库 URL
    private static final String URL = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";
    // 数据库驱动
    private static final String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
    // 数据库用户名
    private static final String USERNAME = "root";
    // 数据库密码
    private static final String PASSWORD = "123456";
    // 代码生成包名
    private static final String PACKAGE_NAME = "com.example.demo";
    // 代码生成输出路径
    private static final String OUTPUT_DIR = "src/main/java";
    // 作者
    private static final String AUTHOR = "zhangsan";

    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator generator = new AutoGenerator();
        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/" + OUTPUT_DIR);
        globalConfig.setAuthor(AUTHOR);
        globalConfig.setOpen(false); // 生成完代码后是否打开输出目录
        generator.setGlobalConfig(globalConfig);
        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setUrl(URL);
        dataSourceConfig.setDriverName(DRIVER_NAME);
        dataSourceConfig.setUsername(USERNAME);
        dataSourceConfig.setPassword(PASSWORD);
        generator.setDataSource(dataSourceConfig);
        // 包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent(PACKAGE_NAME);
        generator.setPackageInfo(packageConfig);
        // 配置需要生成代码的表名
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("user", "order"); // 需要生成代码的表名
        generator.setStrategy(strategyConfig);
        // 执行生成代码操作
        generator.execute();
    }
}

以上是一个简单的代码生成器类的示例。代码中需要修改的参数有:数据库 URL、数据库驱动、数据库用户名、数据库密码、代码生成包名、代码生成输出路径、需要生成代码的表名。根据实际情况进行修改。

3. 执行代码生成器

执行代码生成器,将会在指定输出路径生成对应的 Java 代码文件。在命令行中运行项目,在代码生成器类中调用 generator.execute() 方法即可完成生成。

示例一:生成 user 表的代码

修改代码生成器类中的 main 方法,将需要生成代码的表名改为 user

public static void main(String[] args) {
    // 代码生成器
    AutoGenerator generator = new AutoGenerator();
    // 全局配置
    GlobalConfig globalConfig = new GlobalConfig();
    globalConfig.setOutputDir(System.getProperty("user.dir") + "/" + OUTPUT_DIR);
    globalConfig.setAuthor(AUTHOR);
    globalConfig.setOpen(false); // 生成完代码后是否打开输出目录
    generator.setGlobalConfig(globalConfig);
    // 数据源配置
    DataSourceConfig dataSourceConfig = new DataSourceConfig();
    dataSourceConfig.setUrl(URL);
    dataSourceConfig.setDriverName(DRIVER_NAME);
    dataSourceConfig.setUsername(USERNAME);
    dataSourceConfig.setPassword(PASSWORD);
    generator.setDataSource(dataSourceConfig);
    // 包配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig.setParent(PACKAGE_NAME);
    generator.setPackageInfo(packageConfig);
    // 配置需要生成代码的表名
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig.setInclude("user"); // 需要生成代码的表名
    generator.setStrategy(strategyConfig);
    // 执行生成代码操作
    generator.execute();
}

执行代码生成器,将会在指定输出路径生成对应的 Java 代码文件,其中包括:User.javaUserMapper.javaUserMapper.xmlUserService.javaUserServiceImpl.java

示例二:生成 order 表的代码

修改代码生成器类中的 main 方法,将需要生成代码的表名改为 order

public static void main(String[] args) {
    // 代码生成器
    AutoGenerator generator = new AutoGenerator();
    // 全局配置
    GlobalConfig globalConfig = new GlobalConfig();
    globalConfig.setOutputDir(System.getProperty("user.dir") + "/" + OUTPUT_DIR);
    globalConfig.setAuthor(AUTHOR);
    globalConfig.setOpen(false); // 生成完代码后是否打开输出目录
    generator.setGlobalConfig(globalConfig);
    // 数据源配置
    DataSourceConfig dataSourceConfig = new DataSourceConfig();
    dataSourceConfig.setUrl(URL);
    dataSourceConfig.setDriverName(DRIVER_NAME);
    dataSourceConfig.setUsername(USERNAME);
    dataSourceConfig.setPassword(PASSWORD);
    generator.setDataSource(dataSourceConfig);
    // 包配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig.setParent(PACKAGE_NAME);
    generator.setPackageInfo(packageConfig);
    // 配置需要生成代码的表名
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig.setInclude("order"); // 需要生成代码的表名
    generator.setStrategy(strategyConfig);
    // 执行生成代码操作
    generator.execute();
}

执行代码生成器,将会在指定输出路径生成对应的 Java 代码文件,其中包括:Order.javaOrderMapper.javaOrderMapper.xmlOrderService.javaOrderServiceImpl.java

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis Plus 代码生成器的实现 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java 基础知识之IO总结

    Java 基础知识之 IO 总结 什么是 IO? IO(Input/Output,即输入/输出)是计算机领域中非常重要和基础的概念,指计算机与外部设备交换数据的过程。在 Java 中,IO 通常用于读取和写入文件、网络通信以及其他数据源和操作。Java 提供了强大的 IO 支持,为我们提供了便捷的、可靠的、跨平台的数据交换方案。 Java IO 的分类 Ja…

    Java 2023年5月23日
    00
  • springAop实现权限管理数据校验操作日志的场景分析

    下面是关于“springAop实现权限管理数据校验操作日志的场景分析”的完整攻略,包含两个示例说明。 springAop实现权限管理数据校验操作日志的场景分析 Spring AOP(Aspect Oriented Programming)是一种面向切面编程的技术,它可以在不修改原有代码的情况下,对系统进行横向切割,实现诸如权限管理、数据校验、操作日志等功能。…

    Java 2023年5月17日
    00
  • 如何使用Java调试技术?

    下面我将为您详细讲解如何使用Java调试技术。 如何使用Java调试技术 什么是Java调试技术 Java调试技术是指利用各种工具和技术,用来检查程序运行状态和问题,并找到程序中的错误。 Java调试工具 目前常见的Java调试工具有以下几种: Eclipse IntelliJ IDEA NetBeans jdb jvisualvm jstack等 Java…

    Java 2023年5月11日
    00
  • Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能对比

    针对“Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能对比”的比较和讲解,以下是详细的攻略。 一、三者介绍 1. 原生Mybatis 原生Mybatis就是指在没有任何封装、框架的情况下使用Mybatis。通过编写SQL语句、映射文件和Java代码等相关文件来实现对数据库的操作。 2. Mybatis Plus Mybati…

    Java 2023年5月20日
    00
  • 浅谈Spring Data Redis读不到设进去的值

    针对“浅谈Spring Data Redis读不到设进去的值”的问题,我整理了以下攻略,希望可以帮到您。 问题描述 在使用Spring Data Redis操作Redis时,发现虽然可以成功地将值设进去,但是在读取的时候却无法读取到。 原因分析 Redis中的key过期 Redis有可能设置了自动过期,导致读取不到之前存储在Redis中的值。可以通过ttl命…

    Java 2023年5月20日
    00
  • PHP排序算法之堆排序(Heap Sort)实例详解

    PHP排序算法之堆排序(Heap Sort)实例详解 什么是堆排序? 堆排序(Heap Sort)是一种树形选择排序,是对直接选择排序的有效改进。 堆排序的过程是将待排序的序列构建成一个大根堆(或小根堆),此时整个序列的最大(或最小)值就是堆顶的根节点。 将其与堆数组的末尾元素进行交换,此时末尾就为最大(或最小)值。 然后将剩余n-1个元素重新构造成堆,这样…

    Java 2023年5月26日
    00
  • SpringBoot+Spring Security+JWT实现RESTful Api权限控制的方法

    下面是“SpringBoot+Spring Security+JWT实现RESTful Api权限控制的方法”的完整攻略: 简介 本篇攻略介绍如何使用SpringBoot、Spring Security、JWT实现RESTful Api权限控制。Spring Security可以提供强大的身份验证和授权功能,而JWT可以用于生成安全的令牌。本攻略将介绍如何将…

    Java 2023年5月20日
    00
  • Springboot mybatis plus druid多数据源解决方案 dynamic-datasource的使用详解

    关于“Springboot mybatis plus druid多数据源解决方案 dynamic-datasource的使用详解”的攻略,我会从以下几个方面进行讲解: 什么是多数据源 动态数据源的原理 Springboot mybatis plus druid多数据源解决方案 示例1:在一个Spring Boot项目中使用多数据源 示例2:在一个基于Spri…

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