MyBatis generator配置

沙汀鱼發表於2024-03-21

MyBatis generator

1. 在maven pom.xml中新增外掛配置

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
</plugin>

2. 在控制檯執行指令mvn mybatis-generator:generate

MyBatis generator配置

出現報錯,提示配置檔案不存在
MyBatis generator配置

3. 建立配置檔案generatorConfig.xml

根據錯誤提示,在resources目錄下建立配置檔案,並將官網給出的示例貼上到generatorConfig.xml中
MyBatis generator配置

MyBatis Generator 在生成程式碼時需要透過 JDBC 連線到資料庫來讀取資料庫的結構資訊,以便生成相應的 Java 持久化程式碼。雖然 Maven 依賴能夠在編譯和執行時獲取到 JDBC 驅動程式,但是在 MyBatis Generator 執行時,它需要在本地檔案系統中找到 JDBC 驅動程式,以便將其載入到 JVM 中使用。
generatorConfig.xml配置中文詳解

最終配置好的 generatorConfig.xml 如下:

generatorConfig.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>
    <!--配置mysql驅動路徑-->
    <classPathEntry location="/Users/evex/Projects/IDEA/mysql-connector-java-5.1.6.jar" />


    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--配置重寫,即重複執行mvn mybatis-generator:generate生成時覆蓋之前的mapper的.xml檔案內容-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin>

        <!--配置不在生成檔案中新增註釋-->
        <commentGenerator>
            <property name="suppressAllComments" value="true"></property>
        </commentGenerator>

        <!--配置資料庫連線資訊-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql:///mall?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true"
                        userId="root"
                        password="xxxxxx">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--配置java模型建立器: 生成實體類
        targetPackage:生成的類要放的包
        targetProject:目標專案,指定一個存在的目錄下,生成的內容會放到指定目錄中,如果目錄不存在,MBG不會自動建目錄
        -->
        <javaModelGenerator targetPackage="com.evex.mall.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--配置java模型建立器: 生成SQL map的XML檔案-->
        <sqlMapGenerator targetPackage="com.evex.mall.mapper"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!--配置java模型建立器: 生成Mapper介面-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.evex.mall.dao"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--配置生成的表的資訊
        domainObjectName: 實體類名
        enableXxxByExample:不生成和Example相關的方法
        -->
        <table tableName="mall_order" domainObjectName="Order"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">

        </table>

    </context>
</generatorConfiguration>

4. 配置多次生成可以重寫檔案

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <!--配置重寫,即重複執行mvn mybatis-generator:generate生成時覆蓋之前的檔案內容-->
                <configuration>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

5. 控制檯執行mvn mybatis-generator:generate

出現報錯:
MyBatis generator配置

解決報錯:
執行 SQL 命令ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';更改使用者的身份驗證外掛,強制 MySQL 使用 mysql_native_password 身份驗證外掛而不是 caching_sha2_password。

最終執行成功

MyBatis generator配置

相關文章