mybatis-generator 詳細配置及使用,爬坑記錄
阿新 • • 發佈:2019-01-07
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):