分布式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] ------------------------------------------------------------------------
相关推荐
qq_2975746718 小时前
【实战教程】SpringBoot 集成阿里云短信服务实现验证码发送
spring boot·后端·阿里云
上海锟联科技19 小时前
DAS 系统 250MSPS 是否足够?——来自上海锟联科技的专业解析
分布式·科技·分布式光纤传感·光频域反射·das
RANCE_atttackkk19 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
韩立学长20 小时前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
大佐不会说日语~1 天前
使用Docker Compose 部署时网络冲突问题排查与解决
运维·网络·spring boot·docker·容器
那就学有所成吧(˵¯͒¯͒˵)1 天前
大数据项目(一):Hadoop 云网盘管理系统开发实践
大数据·hadoop·分布式
好好研究1 天前
SpringBoot扩展SpringMVC
java·spring boot·spring·servlet·filter·listener
独自破碎E1 天前
Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法
spring boot·python·pycharm
tb_first1 天前
SSM速通3
java·jvm·spring boot·mybatis
tb_first1 天前
SSM速通4
java·jvm·spring·tomcat·maven·mybatis