Use of MyBatis Code Generator

The MyBatis code generator can help us quickly build some fixed code

Important: The code generated by the code generator cannot be modified, otherwise the modified content may be lost if you rerun the code generator after adding a new field.

MyBatis代码生成器可以帮助我们快速的构建一些固定的代码
重要:代码生成器生成的代码不能被修改,否则在新增新的字段以后,再次运行代码生成器,修改后的内容可能会丢失

Main step:

在项目中引入代码生成器的主要步骤:

  • 新建生成器模块,引入相关插件
 <!-- mybatis generator 自动生成代码插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <configuration>
                    <!--<configurationFile>src/main/resources/generator-config-member.xml</configurationFile>配置文件存放路径-->
                    <configurationFile>src/main/resources/generator-config-business.xml</configurationFile>
                    <!--<configurationFile>src/main/resources/generator-config-batch.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>
  • 在新模块的resources下加入如下的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>

        <!-- 配置数据源,需要根据自己的项目修改 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://rm-uf62v90x7t5hukv5dro.mysql.rds.aliyuncs.com/train_member?serverTimezone=Asia/Shanghai"
                        userId="train_member"
                        password="Member123">
        </jdbcConnection>

        <!-- domain类的位置 targetProject是相对pom.xml的路径-->
        <javaModelGenerator targetProject="../member/src/main/java"
                            targetPackage="com.jiawa.train.member.domain"/>

        <!-- mapper xml的位置 targetProject是相对pom.xml的路径 -->
        <sqlMapGenerator targetProject="../member/src/main/resources"
                         targetPackage="mapper"/>

        <!-- mapper类的位置 targetProject是相对pom.xml的路径 -->
        <javaClientGenerator targetProject="../member/src/main/java"
                             targetPackage="com.jiawa.train.member.mapper"
                             type="XMLMAPPER"/>

        <!--<table tableName="member" domainObjectName="Member"/>-->
        <table tableName="passenger" domainObjectName="Passenger"/>
    </context>
</generatorConfiguration>

when we come into a problem ofURI is not registered (Settings | Languages & Frameworks | Schemas and DTDs):

在导入上述文件的过程中,可能会出现URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)这个问题,解决方案参考这篇文章

  • 运行上述的插件,可以得到数据库对应的实体类,并且生成mapper层常用的方法以及sql xml文件

最近使用了一下代码生成器生成的代码,它的基本用法和MyBatisPlus差不多,使用Example类定义查询条件。

posted @ 2024-06-09 10:19  PostMan_Zc  阅读(9)  评论(0编辑  收藏  举报