Java MybatisPlus 代码生成器
简介
MybatisPlus 是 Mybatis 的增强工具,它能够简化开发者对于数据库操作的代码编写。而 MybatisPlus 的代码生成器是其中的一个重要功能,它能够根据数据库表结构自动生成实体类、Mapper 接口、Service 类等代码,大大提高了开发效率。
本文将详细介绍如何使用 MybatisPlus 代码生成器,并给出相应的代码示例。
前提条件
在开始之前,我们需要满足以下前提条件:
- 已安装 JDK,并正确配置 Java 环境变量。
- 已安装 Maven,并正确配置 Maven 环境变量。
- 已创建一个数据库,并在其中创建了需要生成代码的表。
步骤一:添加依赖
首先,我们需要在 Maven 项目的 pom.xml
文件中添加 MybatisPlus 与数据库驱动的依赖项。假设我们使用的数据库是 MySQL,依赖项如下:
<dependencies>
<!-- MybatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
请注意,上述版本号仅作为示例,请根据实际需要选择最新版本。
步骤二:配置数据源
在 application.properties
或 application.yml
文件中配置数据库连接信息。例如,如果我们使用的是 MySQL 数据库,配置如下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
请根据实际情况修改上述配置。
步骤三:配置代码生成器
在项目的 src/main/java
目录下创建一个名为 generator
的包,并在该包下创建一个名为 CodeGenerator.java
的类。这个类将用于配置代码生成器。
package com.example.generator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* MybatisPlus 代码生成器配置类
*/
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
globalConfig.setOutputDir(projectPath + "/src/main/java");
globalConfig.setAuthor("Your Name");
globalConfig.setOpen(false);
globalConfig.setSwagger2(true);
globalConfig.setBaseResultMap(true);
globalConfig.setBaseColumnList(true);
globalConfig.setIdType(IdType.AUTO);
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("123456");
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example");
packageConfig.setModuleName("demo");
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
strategyConfig.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
strategyConfig.setSuperEntityColumns("id");
strategyConfig.setInclude("user"); // 要生成代码的表名
strategyConfig.setControllerMappingHyphenStyle(true);
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
generator.setStrategy(strategyConfig);
// 执行代码生成器
generator.execute();
}