使用Mybatis Generator結合Ant指令碼快速自動生成Model、Mapper等檔案的方法

使用Mybatis Generator結合Ant指令碼快速自動生成Model、Mapper等檔案的方法
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

MyBatis簡介:

MyBatis是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架。MyBatis消除了幾乎所有的JDBC程式碼和引數的手工設定以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或註解用於配置和原始對映,將介面和Java的POJO(Plain Old Java Objects,普通的Java物件)對映成資料庫中的記錄。

相關閱讀:MyBatis入門學習教程(一)-MyBatis快速入門

使用過Mybatis的同學都知道,針對每一個專案中使用到的資料庫表都需要建立其對應的資料庫增刪改查xxxMapper.xml檔案、實體類xxx.java檔案以及其他類用來呼叫進行資料庫操作的xxxMapper.java檔案。在開始學習Mybatis時,我相信不少人都是通過手動來建立這些檔案的。毫無疑問,如果專案比較大的話還通過手動建立這些檔案效率是非常低的,這時我們可以通過mybatis-generator來自動生成這些檔案。但是,這個工具預設是以命令列的形式來生成相關檔案的,因此我們可以通過寫一個Ant指令碼,每次需要建立這些檔案時在eclipse中執行一下這個Ant指令碼就可以自動生成了。完整步驟如下:

一 匯入相關jar包

要想使用“mybatis-generator”需要在web專案的lib中匯入對應的一個mybatis-generator-1.3.x.jar檔案,Github上的下載地址:mybatis-generator的jar包下載

二 配置mybatis-generator的配置檔案

(1)首先在專案中新建幾個包用於存放對應的檔案:

由上圖可以看出,src/main/java用於存放Java原始碼;src/main/env/dev用於存放開發環境下的配置檔案(如:jdbc,快取,日誌等);src/main/resources用於存放通用的一些配置檔案,在這裡我們自動生成的Mapper.xml檔案就存放在這個路徑下;src/test/java表示測試程式碼,這裡不管

注:如何在eclipse中新增這些原始檔夾?

(2)在專案根目錄下新建generatorConfig.xml和build_mybatis.xml:

這兩個檔案分別是“mybatis-generator”的配置檔案和自動化的Ant指令碼,在專案中的路徑如下:

i)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>
<!--資料庫驅動 -->
<classPathEntry
location="WebContent/WEB-INF/lib/mysql-connector-java-5.1.26-bin.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消註釋 -->
<property name="suppressDate" value="true" /> <!-- 是否生成註釋代時間戳 -->
</commentGenerator>
<!-- 資料庫連線資訊 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/ehcache_db" userId="root"
password="root">
</jdbcConnection>
<!-- 只有一個屬於forceBigDecimals,預設false。 如果欄位精確超過0,生成BigDecimal 如果欄位精確是0,總長度10-18生成Long;如果欄位精確是0, 
總長5-9生成Integer; 如果欄位精確是0,總長小於5生成Short; 如果forceBigDecimals為true,統一生成BigDecimal -->
<javaTypeResolver>
<!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--生成Model.java檔案 -->
<javaModelGenerator targetPackage="cn.zifangsky.model"
targetProject="src/main/java">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
<!-- 是否針對string型別的欄位在set的時候進行trim呼叫 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成Mapper.xml檔案 -->
<sqlMapGenerator targetPackage="sqlmaps"
targetProject="src/main/resources">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 生成Mapper.java檔案,即dao層 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.zifangsky.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 待生成的資料庫中的表名,生成一個表對應的Java和xml檔案就需要配置一段 -->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>

注:需要修改的一些地方可以參照我上面的註釋進行修改,同時別忘了資料驅動的jar包

ii)build_mybatis.xml:


<project default="genfiles" basedir=".">
<property name="generated.source.dir" value="${basedir}" />
<path id="ant.run.lib.path">
<pathelement location="${basedir}/WebContent/WEB-INF/lib/mybatis-generator-core-1.3.2.jar"/>
</path>
<target name="genfiles" description="Generate the files">
<taskdef name="mbgenerator" classname="org.mybatis.generator.ant.GeneratorAntTask" classpathref="ant.run.lib.path"/>
<mbgenerator overwrite="true" configfile="generatorConfig.xml" verbose="false">
<propertyset>
<propertyref name="generated.source.dir" />
</propertyset>
</mbgenerator>
</target>
</project>

上面的程式碼就兩個地方需要注意:一是“mybatis-generator”的jar包,二是需要對應的“generatorConfig.xml”檔案

注:如果對Ant指令碼不太熟悉的話,可以參考下我寫的這篇文章://www.jb51.net/article/87674.htm

三 測試

進行效果測試時,只需要把“build_mybatis.xml”這個檔案拖到Ant檢視中,然後點選執行這個指令碼就可以自動生成我們需要的檔案了,最後就是重新整理一下專案結構就可以看到檔案了,效果如下:

注:我測試使用到的資料庫資料:


SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`email` varchar(64) DEFAULT NULL,
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'admin', '123456', '[email protected]', '2000-01-02');
INSERT INTO `user` VALUES ('2', 'test', '1234', '[email protected]', '1990-12-12');
INSERT INTO `user` VALUES ('3', 'xxxx', 'xx', '[email protected]', '1723-06-21');

以上所述是小編給大家介紹的使用Mybatis Generator結合Ant指令碼快速自動生成Model、Mapper等檔案的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對指令碼之家網站的支援!

您可能感興趣的文章:

IDEA Maven Mybatis generator 自動生成程式碼(例項講解)SSM框架通過mybatis-generator自動生成程式碼(推薦)MyBatis_Generator外掛的安裝以及簡單使用方法(圖解)詳解MyBatis Generator自動建立程式碼(dao,mapping,poji)MyBatis Generator生成程式碼及使用方式詳解Java的MyBatis框架中MyBatis Generator程式碼生成器的用法詳解使用MyBatis Generator自動建立程式碼

相關文章

程式語言 最新文章