mybatis自動生成代碼有三種方式:命令行、eclipse插件、maven插件。在這裏主要介紹比較方便使用的一種方式–maven插件,它可以在eclipse、idea中通用。
在pom.xml文件中配置mybatis-generator插件:
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<!-- 配置文件的位置 -->
<configurationFile>generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
逆向生成代碼需要的配置文件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>
<!-- 指定連接數據庫的JDBC驅動,指定到本機的完整路徑(可以指定到maven倉庫中的jar路徑) -->
<classPathEntry
location="D:/Workspaces/maven_repos/mysql/mysql-connector-java/5.1.8/mysql-connector-java-5.1.8.jar"/>
<!-- 配置table表信息內容體,targetRuntime指定採用mybatis3的版本 -->
<context id="my" targetRuntime="MyBatis3">
<!-- 抑制生成註釋,由於生成的註釋都是英文版的,可以不讓它生成 -->
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 配置數據庫連接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/springdb" userId="root"
password="123456"/>
<!-- 生成model類,targetPackage指定model類的包名,targetProject指定生成的model放在哪個工程中 -->
<javaModelGenerator targetPackage="com.cui.springboot.model"
targetProject="D:/Workspaces/IdeaProjects/springboot-mybatis/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成mybatis的mapper.xml文件,targetPackage指定mapper.xml的包名,targetProject指定mapper.xml在哪個工程目錄下 -->
<sqlMapGenerator targetPackage="com.cui.springboot.mapper"
targetProject="D:/Workspaces/IdeaProjects/springboot-mybatis/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成mybatis的Mapper接口類文件,targetPackage指定Mapper接口類文件的包名,targetProject指定Mapper接口類在哪個工程目錄下 -->
<javaClientGenerator targetPackage="com.cui.springboot.mapper"
targetProject="D:/Workspaces/IdeaProjects/springboot-mybatis/src/main/java"
type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--<table tableName="T_FEE_AGTBILL" domainObjectName="FeeAgentBill"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"/>-->
<!-- 數據庫表以及對應的java模型類名(如果是多個表的話,可以複製多份然後修改成對應的表以及需要生成的模型名) -->
<table tableName="student" domainObjectName="Student"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!--<columnRenamingRule searchString="^D_"
replaceString=""/>-->
</table>
</context>
</generatorConfiguration>
在上面的配置文件中已經將註釋給出來了,需要注意的有以下幾點:
- 在table標籤中的tableName和domainObjectName是必須的,分別對應着數據庫表名和實體類類名。其餘的配置參數可以刪除,一般默認是false。
- 創建數據表示時,字段名稱可以使用下劃線“_”將多個單詞進行分割,比如:REC_ID這樣的生成的實體類的屬性是駝峯型,這樣子比較好看一點。
- oracle中,數值形的字段,如果指定精度,比如Number(12,2),默認生成entity屬性是BigDecimal型 ,如果不指定精度,比如:Number(9),指默認生成的是Long型
- oracle中的nvarchar/nvarchar2,mybatis-generator會識別成Object型,建議不要用nvarchar2,改用varchar2
弄完以上的步驟之後,就可以進行生成代碼操作,如果idea的話,可以通過以下進行生成:
找到mybatis-generator:generate,然後雙擊操作,即可生成代碼。
生成的目錄結構如下:
還可以通過以下的方式進行執行mybatis-generator:
在該插件的目錄下,按住shift鍵,選擇“在此處打開命令窗口”選項,在彈出的窗口中輸入以下的命令,然後回車(注意:需要將配置文件generatorConfig.xml文件也複製到該目錄下):
java -jar mybatis-generator-core-1.3.6.jar -configfile generatorConfig.xml -overwrite