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:
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
|
<?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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<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腳本不太熟悉的話,可以參考下我寫的這篇文章:
三 測試
進行效果測試時,只需要把“build_mybatis.xml”這個文件拖到Ant視圖中,然后點擊執行這個腳本就可以自動生成我們需要的文件了,最后就是刷新一下項目結構就可以看到文件了,效果如下:
注:我測試使用到的數據庫數據:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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 -- ---------------------------- |
以上所述是小編給大家介紹的使用Mybatis Generator結合Ant腳本快速自動生成Model、Mapper等文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!