使用eclipse mybatis generator插件在maven 項目中自動構建代碼以及遇到的一些坑
- 2019 年 10 月 8 日
- 筆記
mybatis-generator是一款在使用mybatis框架時,自動生成model,dao和mapper的工具,很大程度上減少了業務開發人員的手動編碼時間,今天自己研究了一下,也分享一下使用心得供大家簡單使用。
本人使用的是maven構建,首先需要在pom.xml文件添加mybatis-generator依賴包以及插件,配置如下:
在dependencies中添加:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
在build的plugins中添加:
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!– mybatis用於生成代碼的配置文件 –>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
上面就是pom.xml中需要添加的配置,接下來就是在resources下建genneratorConfig.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>
<classPathEntry
location="/Users/zhuyanhui/Documents/soft/mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar" />
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!– mysql數據庫連接 –>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/Managers" userId="root"
password="123456" />
<!– 生成model實體類文件位置 –>
<javaModelGenerator targetPackage="com.siyuan.entity"
targetProject="/Users/zhuyanhui/eclipse-workspaces/siyuan-entity/src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!– 生成mapper.xml配置文件位置 –>
<sqlMapGenerator targetPackage="mappings"
targetProject="/Users/zhuyanhui/eclipse-workspaces/siyuan-web/src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!– 生成mapper接口文件位置 –>
<javaClientGenerator targetPackage="com.siyuan.dao"
targetProject="/Users/zhuyanhui/eclipse-workspaces/siyuan-dao/src/main/java"
type="XMLMAPPER">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!– 需要生成的實體類對應的表名,多個實體類複製多份該配置即可 –>
<table tableName="userRole" domainObjectName="UserRole"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
由於本人是分模塊操作所以實體類也是一個項目,所以實體類與dao層與mapping配置的都不是在同個工程下。
到此為止,所有的配置已完畢,在ecplise中使用,則右擊工程,maven build,添加命令mybatis-generator:generate就能生成代碼了

刷新工程,就能看到新增的代碼了

最後在說下我在使用命令時遇到以下幾個問題的解決方案
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique:
依賴必須是唯一的 原因是我在pom文件中加入了兩個相同的依賴 刪掉一個就行了
Non-resolvable parent POM for com.siyuan:siyuan-web:0.0.1-SNAPSHOT: Could not find artifa
原來是父工程沒有註冊,右鍵parent 項目 -run as – maven install 即可解決
不知道大家是否遇到了其中的一些坑,希望這篇博客能夠給大家帶來幫助。