1. 程式人生 > >mybatis-generator 詳細配置及使用,爬坑記錄

mybatis-generator 詳細配置及使用,爬坑記錄

mybatis-generator 詳細配置及使用,爬坑記錄

提示:如果不成功一定是專案路徑和 資料庫配置出問題,本篇基於 MySQL 8.0.13,除錯沒有問題。

如果失敗,建議使用相同的專案結構,包名,進行重試,博主也是多次除錯,才成功。一些常見問題,看報錯提示資訊是可以看懂的,加油。

整個專案的原始碼,最後,也會給出下載連結。

這是根據資料庫,生成後的專案結構:

一、簡介:

mybatis-geneator 是一款 mybatis 自動程式碼生成工具,可以通過配置,快速生成 mapper 和 xml 檔案。

二、配置方法:

(1)在專案的 pom.xml 檔案中新增外掛配置

詳細的 pom.xml 配置:

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

    <dependencies>
        <dependency>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-core</artifactId>
          <version>1.3.7</version>
        </dependency>

        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.13</version>
        </dependency>
     </dependencies>

     <executions>
        <execution>
          <id>mybatis generator</id>
          <phase>package</phase>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <!--允許移動生成的檔案-->
            <verbose>true</verbose>
            <!--允許自動覆蓋檔案-->
            <overwrite>true</overwrite>
            <configurationFile>
              src/main/resources/generatorConfig.xml
            </configurationFile>
       </configuration>
     </execution>
     </executions>


</plugin>

(2)根據自己配置的檔案路徑及名稱,建立相應 generatorConfig.xml 檔案,位置如下圖:

(3)先手動建立一些目錄,在配置的時候回有提示,大大降低出錯概率,整體目錄結構:

三、建立 MySQL 資料庫,建立 2 兩個表:

之前介紹過多次命令列建立資料庫表了,檢視 MySQL - 最經典的 命令列操作資料庫 + 表(增刪改查例項)

這次使用 Navicat for MySQL,如果沒有安裝請參考:Navicat for MySQL 最新版安裝與破解 + 報錯解決辦法

(1)建立連線,建立資料庫:

(2)資料庫名,選擇編碼:

(3)新建表:

(4)填寫表資訊:

主鍵:

其他:

表名為 user_info

(5)插入一條資訊:

(6)細心的你可能發現了沒有 upwd 存密碼的欄位,我們這裡放在另外一張表上,新建表 user_pwd:

四、編輯 mybatis-generator.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>

    <!-- context 是逆向工程的主要配置資訊 -->
    <!-- id:起個名字 -->
    <!-- targetRuntime:設定生成的檔案適用於那個 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">


        <!--jdbc的資料庫連線-->
        <!--這裡是以變數的形式定義,具體的值在 application.properties 檔案中-->
        <!--jdbc:mysql://localhost:3306/資料庫名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC"
                        userId="root"
                        password="xiaopengwei">
        </jdbcConnection>

        <!-- targetPackage:生成的實體類所在的包 -->
        <!-- targetProject:生成的實體類所在的硬碟位置 -->
        <!-- DataObject 類存放位置 -->
        <javaModelGenerator targetPackage="com.miaoshapro.dataobject"
                            targetProject=".\src\main\java">
            <!-- 是否允許子包 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否對modal新增建構函式 -->
            <property name="constructorBased" value="true" />
            <!-- 是否清理從資料庫中查詢出的字串左右兩邊的空白字元 -->
            <property name="trimStrings" value="true" />
            <!-- 建立modal物件是否不可改變 即生成的modal物件不會有setter方法,只有構造方法 -->
            <property name="immutable" value="false" />
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:生成的 mapper 檔案的包和位置 -->
        <sqlMapGenerator targetPackage="mapping"
                         targetProject=".\src\main\resources">
            <!-- 針對資料庫的一個配置,是否把 schema 作為字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage 和 targetProject:生成的 interface 檔案的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.miaoshapro.dao" targetProject=".\src\main\java">
            <!-- 針對 oracle 資料庫的一個配置,是否把 schema 作為字包名 -->
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--生成對應表及類名-->
        <table tableName="user_info" domainObjectName="UserDO">
        </table>
        <table tableName="user_pwd" domainObjectName="UserPwdDO">
        </table>
    </context>
</generatorConfiguration>

五、執行 mybatis-generator 外掛

(1)開啟配置:

(2)點選 +,選擇 Maven:

(3)輸入資訊,命令:
在這裡插入圖片描述

(4)選中剛才建立的名稱,點選執行:

六、執行結果:

(1):

(2):

(3):

(4):