0101_利用mybatis-generator自動生成程式碼
利用mybatis-generator自動生成程式碼
mybatis-generator有三種用法:命令列、eclipse外掛、maven外掛。個人覺得maven外掛最方便,可以在eclipse/intellij idea等ide上可以通用。
下面是從官網上的截圖:(不過官網www.mybatis.org 最近一段時間,好象已經掛了)
一、在pom.xml中新增plugin
按 Ctrl+C 複製程式碼
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
按 Ctrl+C 複製程式碼
其中generatorConfig.xml的位置,大家根據實際情況自行調整
二、generatorConfig.xml配置檔案
按 Ctrl+C 複製程式碼
<?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="C:/Oracle/Middleware/wlserver_10.3/server/lib/ojdbc6.jar"/>
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@172.20.16.***:1521:CARGO" userId="***"
password="***"/>
<javaModelGenerator targetPackage="ctas.test.entity"
targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="ctas.test.entity.xml"
targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator targetPackage="ctas.test.mapper"
targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/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"/>-->
<table tableName="CTAS_FEE_BASE" domainObjectName="FeeBase"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!--<columnRenamingRule searchString="^D_"
replaceString=""/>-->
</table>
</context>
</generatorConfiguration>
按 Ctrl+C 複製程式碼
幾個要點:
a) 因為生成過程中需要連線db,所以第3行指定了驅動jar包的位置
b) 15-17行為連線字串
c) 19-33行指定生成“entity實體類、mybatis對映xml檔案、mapper介面”的具體位置
d) 40-46行為具體要生成的表,如果有多個表,複製這一段,改下表名即可
三、使用方式
mvn mybatis-generator:generate
如果是在intellij 環境,直接滑鼠點選即可
最後給出目錄結構圖:
最後給一些小技巧:
a) 建表時,欄位名稱建議用"_"分隔多個單詞,比如:AWB_NO、REC_ID...,這樣生成的entity,屬性名稱就會變成漂亮的駝峰命名,即:awbNo、recId
b)oracle中,數值形的欄位,如果指定精度,比如Number(12,2),預設生成entity屬性是BigDecimal型 ,如果不指定精度,比如:Number(9),指預設生成的是Long型
c)oracle中的nvarchar/nvarchar2,mybatis-generator會識別成Object型,建議不要用nvarchar2,改用varchar2