一、什麼是MyBatis Generator?
MyBatis Generator是一個可以用來生成Mybatis dao,entity,Mapper檔案的一個工具,在專案的過程中可以省去很多重複的工作,我們只要在MyBatis Generator的配置檔案中配置好要生成的表名與包名,然後執行一條命令就會生成一堆檔案。
為什麼要使用MyBatis Generator?
在使用MyBatis時,當表還比較少時,我們可以手寫與表操作相對應的dao、entity、mapper,但是隨著表越來越多,手寫重複的程式碼就顯得有點浪費時間了,所以就是用MyBatis官方提供的外掛MyBatis Generator來幫我們自動生成檔案、程式碼。
關於如何使用MyBatis Generator,可以參考官方文件。在這裡我主要講一下自己在使用這個外掛時遇到的一些坑。
使用MyBatis Generator時遇到了哪些坑?
1、在maven中引入MyBatis Generator外掛時,maven中始終無法顯示該外掛
當時pom.xml檔案中外掛位置是這樣子的:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<!-- MyBatis Generator外掛 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
複製程式碼
這種情況下,MyBatis Generator外掛始終無法在Maven中顯示出來。解決方式:把MyBatis Generator放到跟pluginManagement同級別下就可以了。 程式碼如下:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
</plugins>
</pluginManagement>
<!-- mybatis generator外掛, 注意不能放在pluginManagement裡面,要跟它同級別 -->
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
複製程式碼
2、在IDEA中建立generatorConfig.xml檔案時,檔案頭報錯:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
所以我們直接選擇Fetch external resource
就行了,如果不行,就選第二個Ignore external resource
,我就是通過第二種方式解決的!
不過可能有的小夥伴會問,第三個選項呢?我沒試過,我也不知道。-_-
3、mybatis-generator-maven-plugin:1.3.4:generate failed: Exception getting JDBC Driver
當配置檔案的準備工作都做完後,開始執行外掛時,心裡祈禱要一切順利呀,結果:我擦,還是報錯了!
通過錯誤提示資訊我們就知道,找不到JDBC的驅動包,此時有兩個解決方式:
(1)在plugin檔案中單獨配置MySQL的驅動包
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!-- 在plugin中單獨依賴MySQL驅動包,解決找不到JDBC Driver的問題 -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
</dependencies>
</plugin>
複製程式碼
(2) 在generatorConfig.xml中設定驅動包的location
<classPathEntry location="驅動包檔案位置"/>
複製程式碼
結束語:其實很多問題在發生的時候,IDE就已經在控制檯給了我們提示,所以當我們遇到問題時,不要慌,認真看異常提示,耐心一點,問題總會被解決的!解決不了,還有Google呢。^_^