使用Mybatis-Generator可以根據數據庫表逆向生成持久化類po,映射文件和mapper接口,下面以oracle爲例介紹詳細步驟。
Mybatis-Generator相關jar包下載地址
第一步: 自行創建好數據表。
第二步: 新建一個Java工程,右鍵工程名新建lib文件夾,將上述下載的文件解壓,然後將jar包複製到lib目錄下並右鍵 -> Build Path -> Add to Build Path。
第三步: 在src目錄下新建文件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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 -->
<jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@localhost:1521:ORCL"
userId="xitw"
password="xitw">
</jdbcConnection>
<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="userId"
password="password">
</jdbcConnection> -->
<!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer,爲 true時把JDBC DECIMAL 和
NUMERIC 類型解析爲java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO類的位置 -->
<javaModelGenerator targetPackage="com.mybatis.po" targetProject=".\src">
<!-- enableSubPackages:是否讓schema作爲包的後綴 -->
<property name="enableSubPackages" value="false" />
<!-- 從數據庫返回的值被清理前後的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否讓schema作爲包的後綴 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.mybatis.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否讓schema作爲包的後綴 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定數據庫表 -->
<!--
如果要直接指定全部表,可以用
<table tableName="%"></table>
的方式,會默認將數據表中的"_"去掉並以駝峯的形式生成實體類名
-->
<table tableName="orders" domainObjectName="Orders"></table>
<table tableName="orderdetail" domainObjectName="OrderDetail"></table>
<!-- 有些表的字段需要指定java類型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
其中,請自行在jdbcConnection節點中指定你的數據庫相關配置信息,javaModelGenerator sqlMapGeneratortarget javaClientGenerator三個節點分別指定了持久化類,映射文件和mapper接口被創建的位置。
第四步: 新建一個類Generator,將下面的代碼複製進去:
public class Generator {
public void generate() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//需要指定上一步創建的配置文件:generatorConfig.xml在計算機中的絕對路徑
File configFile = new File("E:/workspace/springmvc/potest/src/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
Generator gen = new Generator();
gen.generate();
System.out.println("Generate Successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
注意,在創建File對象時,需要指明上一步建立的配置文件在你的計算機中的絕對路徑。
運行這段代碼,刷新工程,即可發現在相應位置生成了持久化類,映射文件和mapper接口(如下圖所示)。然後將這些文件或者代碼複製到你正在開發的工程中即可。
原文出處:http://blog.csdn.net/xiangwanpeng https://blog.csdn.net/xiangwanpeng/article/details/5409056