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):