分布式springboot 3项目集成mybatis官方生成器开发记录

文章目录

说明

  • 该文章为作者开发学习记录,方便以后复习和交流
  • 主要内容为:分布式springboot3 项目集成mybatis官方生成器开发记录,创建单独的generator模块进行单表的domain、mapper和mapper.xml的内容生成
  • 这里以Mysql8为案例进行演示,如果你使用的MySQL5,请使用合适的mysql驱动和修改连接配置的driverClass为com.mysql.jdbc.Driver
  • 如果您要使用的话,请修改需要修改的内容和具体项目适配

实现思路

  1. 创建generator子模块
  2. 引入maven依赖和generator插件
  3. 编写生成器配置文件,运行generator子模块

实现步骤

第一步:创建generator子模块

  • generator子模块为普通的maven项目

第二步:引入相关maven插件和依赖

  • 编辑generator子模块的pom依赖配置文件,添加如下内容(mysql8版本适用)
xml 复制代码
 <build>
        <plugins>
            <!-- mybatis generator 自动生成代码插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <configuration>
                	<!--config文件位置-->
                    <configurationFile>src/main/resources/generator-config-x.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.22</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

第三步:编写生成器配置文件

  • 在generator子模块中编写src/main/resources/generator-config-x.xml文件,参考内容如下:
  • 如果IDEA在文件头部的URL爆红,忽略即可
  • 填写具体的数据连接配置和子模块的名称
xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 自动检查关键字,为关键字增加反引号 -->
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆盖生成XML文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
        <!-- 生成的实体类添加toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!-- 不生成注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- 配置mysql8数据源,需要根据自己的项目修改 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/xxx?serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8"
                        userId="xxx"
                        password="xxx">
        </jdbcConnection>

        <!-- domain类的位置 targetProject是相对pom.xml的路径-->
        <javaModelGenerator targetProject="../相应的子模块名称/src/main/java"
                            targetPackage="com.yang.train.x.domain"/>

        <!-- mapper xml的位置 targetProject是相对pom.xml的路径 -->
        <sqlMapGenerator targetProject="../相应的子模块名称/src/main/resources"
                         targetPackage="mapper"/>

        <!-- mapper类的位置 targetProject是相对pom.xml的路径 -->
        <javaClientGenerator targetProject="../相应的子模块名称/src/main/java"
                             targetPackage="com.yang.train.x.mapper"
                             type="XMLMAPPER"/>

        <table tableName="x" domainObjectName="x"/>
        <!--<table tableName="passenger" domainObjectName="Passenger"/>-->
        <!--<table tableName="ticket" domainObjectName="Ticket"/>-->
    </context>
</generatorConfiguration>

第四步:运行·查看结果

  • 打开IDEA右侧的maven窗口,选择生成器插件点击运行即可
bash 复制代码
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< com.yang:train-generator >----------------------
[INFO] Building train-generator 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- mybatis-generator-maven-plugin:1.4.0:generate (default-cli) @ train-generator ---
[INFO] Connecting to the Database
[INFO] Introspecting table x
[INFO] Generating Example class for table x
[INFO] Generating Record class for table x
[INFO] Generating Mapper Interface for table x
[INFO] Generating SQL Map for table x
[INFO] Saving file xMapper.xml
[INFO] Saving file xExample.java
[INFO] Saving file x.java
[INFO] Saving file xMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.204 s
[INFO] Finished at: 2024-02-07T12:30:58+08:00
[INFO] ------------------------------------------------------------------------
相关推荐
杨不易呀18 分钟前
Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
spring boot·redis·高并发·分布式锁·java面试·quarkus
阿四啊31 分钟前
【Redis实战篇】分布式锁-Redisson
数据库·redis·分布式
努力的搬砖人.41 分钟前
如何让rabbitmq保存服务断开重连?保证高可用?
java·分布式·rabbitmq
多多*1 小时前
Java反射 八股版
java·开发语言·hive·python·sql·log4j·mybatis
Moshow郑锴1 小时前
Spring Boot 3 + Undertow 服务器优化配置
服务器·spring boot·后端
码农飞哥1 小时前
互联网大厂Java面试实战:Spring Boot到微服务的技术问答解析
java·数据库·spring boot·缓存·微服务·消息队列·面试技巧
Auc242 小时前
OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
java·spring cloud·log4j·mybatis·代理模式·工厂模式
掘金-我是哪吒2 小时前
分布式微服务系统架构第126集:集群,数据库扩展,多节点分布,分库,分表,分片,分表,运维
运维·数据库·分布式·微服务·系统架构
愿你天黑有灯下雨有伞2 小时前
Spring Boot集成RabbitMQ高级篇:可靠性与性能提升
spring boot·rabbitmq·java-rabbitmq
·云扬·3 小时前
【PmHub后端篇】Skywalking:性能监控与分布式追踪的利器
分布式·skywalking