首页 > 其他分享 >MyBatis-Plus 提供了自动生成代码超详细教程

MyBatis-Plus 提供了自动生成代码超详细教程

时间:2024-07-23 17:29:23浏览次数:13  
标签:代码生成 教程 java 配置 生成 Plus MyBatis baomidou com

MyBatis-Plus 提供了自动生成代码的工具(代码生成器),可以快速生成实体类、Mapper 接口、Service 类以及 Controller 等代码。这大大提高了开发效率,特别是在处理大型项目时。以下是一个使用 MyBatis-Plus 自动生成代码的详细指南:

1. 添加依赖

pom.xml 中添加 MyBatis-Plus 和 MyBatis-Plus Generator 的依赖:

<dependencies>
    <!-- MyBatis-Plus 依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.3.1</version>
    </dependency>
    <!-- MyBatis-Plus Generator 依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.5.3.1</version>
    </dependency>
    <!-- Velocity 模板引擎 -->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.3</version>
    </dependency>
    <!-- MySQL 连接驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
</dependencies>

2. 配置代码生成器

创建一个 Java 类,用于配置和运行代码生成器。以下是一个示例配置:

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;

import java.util.Collections;

public class CodeGeneratorForGDBC {
    public static void main(String[] args) {
        FastAutoGenerator.create(new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/your_db_name", "username", "password"))
            .globalConfig(builder -> {
                builder.author("Your Name") // 设置作者
                        .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录
            })
            .packageConfig(builder -> {
                builder.parent("com.example.projectDemo") // 设置父包名
                        .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper")); // 设置mapperXml生成路径
            })
            .strategyConfig(builder -> {
                builder.addInclude("your_table_name") // 设置需要生成的表名
                        .entityBuilder().naming(NamingStrategy.underline_to_camel).enableLombok() // 生成的实体类使用Lombok
                        .controllerBuilder().enableRestStyle() // 生成 @RestController 控制器
                        .mapperBuilder().enableBaseResultMap(); // 启用 BaseResultMap
            })
            .templateEngine(new VelocityTemplateEngine()) // 使用Velocity模板引擎
            .execute();
    }
}

3. 配置说明

  • 依赖配置:
    检查 pom.xml 文件,确保引入了所需的依赖,并且版本号正确。
  • 数据源配置:
    在 FastAutoGenerator.create 方法中,配置数据库连接信息。
  • 全局配置:
    使用 globalConfig 方法设置全局配置,包括作者信息和输出目录。
  • 包配置:
    使用 packageConfig 方法设置包名和 mapper XML 文件的生成路径。
  • 策略配置:
    使用 strategyConfig 方法设置代码生成策略,包括生成哪些表、命名策略、是否启用 Lombok 等。
  • 模板引擎:
    使用 templateEngine 方法设置模板引擎(此处为 Velocity)。
  • 执行生成:
    调用 execute 方法生成代码。

4. 运行代码生成器

运行 CodeGenerator 类中的 main 方法,代码生成器将会根据配置自动生成相应的代码(实体类、Mapper 接口、Service 类、Controller 等)。

5. 生成的文件结构

src/
 └── main/
     ├── java/
     │   └── com/
     │       └── example/
     │           └── project/
     │               ├── module/
     │               │   ├── controller/
     │               │   │   └── YourEntityController.java
     │               │   ├── entity/
     │               │   │   └── YourEntity.java
     │               │   ├── mapper/
     │               │   │   └── YourEntityMapper.java
     │               │   ├── service/
     │               │   │   ├── impl/
     │               │   │   │   └── YourEntityServiceImpl.java
     │               │   │   └── YourEntityService.java
     │               │   └── xml/
     │               │       └── YourEntityMapper.xml
     └── resources/
         ├── application.properties
         └── mapper/
             └── YourEntityMapper.xml

6. 运行项目

生成代码后,可以根据具体项目需求对生成的代码进行调整和完善。确保配置正确,然后运行 Spring Boot 项目,即可使用生成的代码与数据库进行交互。

以上是使用 MyBatis-Plus 代码生成器自动生成代码的基本步骤和配置示例。根据实际情况,可能需要对配置进行调整以满足特定需求。

标签:代码生成,教程,java,配置,生成,Plus,MyBatis,baomidou,com
From: https://blog.csdn.net/qq_42631788/article/details/140613177

相关文章

  • MyBatis 和 MyBatis-Plus 介绍及适用场景
    MyBatis和MyBatis-Plus介绍及适用场景MyBatis介绍MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集的工作。与Hibernate这种全自动ORM框架不同,MyBatis允许开发者通过简单......
  • 优化循环操作数据库批量处理数据mybatis plus
    优化循环操作数据库批量处理数据mybatisplus大家好我是小星,今天在技术交流群里看见有人在循环中修改数据库,觉得不太好在此总结几种批量修改数据库的方法未优化前代码:for(inti=0;i<pojolist.size();i++){Pojopojo=pojolist.get(i);pojo.setAge(1);m......
  • React 18【实用教程】(2024最新版)
    搭建开发环境含@配置,react-developer-tools和ReduxDevTools下载安装https://blog.csdn.net/weixin_41192489/article/details/138523829JSX语法https://blog.csdn.net/weixin_41192489/article/details/138649165组件父子组件传值、兄弟组件传值、越层组件......
  • WordPress安装详细教程
    1主机空间要求要运行 WordPress,主机空间需满足以下条件。不过现在网络上的空间基本都可以,而且还让你随意定制Php和Mysql版本,至于空间和数据库大小就更不用说了,一句话,有钱就可以任性。环境:Linux+Nginx(Apache)+Mysql+Phpphp: 5.6+Mysql: 5.0+空间:100m+数据库大小......
  • SpringBoot升级到3.3.2版本,JDK升级到17,引入Mybatis-plus后启动报错:Property 'sqlSessi
    【问题描述】2024-07-23T15:16:07.174+08:00WARN2604---[questionnaire][main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependen......
  • 解决 SandboxBroker.dll 缺失问题:Windows沙盒服务修复教程
    sandboxbroker.dll是Windows操作系统中用于沙箱(Sandbox)技术的组件之一。沙箱是一种安全机制,它允许应用程序在一个受限的环境中运行,从而保护系统免受潜在的恶意行为影响。sandboxbroker.dll主要负责协调沙箱内的进程与外部资源之间的交互,例如文件访问、注册表操作等。它在现代Wi......
  • Mybatis整合多数据源
    背景 有时候我们需要查询来自多个库表的数据内容,但是又不想起多个服务,可以业务需要这些数据那该怎么办呢?那么其实Mybatis是支持整合多数据源,并随时进行切换。 解决引入依赖 首先引入dynamic-datasource-spring-boot-starter依赖<dependency><groupId>com.baomid......
  • Window系统下MySQL安装教程
    1、MySQL各版本介绍MySQLCommunityEdition        MySQLCommunityEdition是MySQL官方发布的免费版本,适用于个人用户和小型团队使用。它包含了基本的数据库功能,如创建表、插入数据、查询数据等。MySQLEnterpriseEdition        MySQLEnterpriseEd......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......
  • 2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
    关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题前排提示:文末有CSDN独家网络安全资料包!1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学......