總結:使用MyBatis Generator時遇到的坑

樑樸生發表於2019-04-12

一、什麼是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)

如下圖所示:

總結:使用MyBatis Generator時遇到的坑

遇到這種情況不要慌,IDEA本身已經給我們提供瞭解決方案:

總結:使用MyBatis Generator時遇到的坑

所以我們直接選擇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呢。^_^

相關文章