generator自動生成mybatis的xml配置、model、map等信息:
一、下載mybatis-generator-core-1.3.2.jar包。
網址:http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DGenerator,下載mybatis-generator-core-1.3.2-bundle.zip,解壓
找到lib下的須要jar包。
二、編寫genertor的xml文件,名下:generator.xmlhtml
Xml代碼java
<?xmlversion="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">mysql
<classPathEntrylocation="E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar"/>
<propertyname="suppressAllComments"value="true"/>
<jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@198.17.1.1:1521:ORCL"
userId="unuser"
password="password">
<propertyname="forceBigDecimals"value="false"/>
<javaModelGeneratortargetPackage="com.soft.model"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">
<propertyname="enableSubPackages"value="true"/>
<propertyname="trimStrings"value="true"/>
<sqlMapGeneratortargetPackage="sqlmap"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\conf">
<propertyname="enableSubPackages"value="false"/>
sql
<javaClientGeneratortype="XMLMAPPER"targetPackage="com.soft.mapping"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">
<propertyname="enableSubPackages"value="true"/>
數據庫
table其餘屬性:
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
schema即爲數據庫名, tableName爲對應的數據庫表, domainObjectName是要生成的實體類,
若是想要mapper配置文件加入sql的where條件查詢, 能夠將enableCountByExample等設爲true,
這樣就會生成一個對應domainObjectName的Example類, enableCountByExample等設爲false時,
就不會生成對應的Example類了.apache
若是table裏邊不配置property,默認字段都生成爲類屬性。
三、運行有四種:命令生成(最簡單)、Java生成、ant生成、maven生成。這裏說兩種,有興趣其他的能夠在mybatis官網去學習。mybatis
1)、運行-》cmd->java - jar jar包的文件路徑 -configfile generator.xml的文件路徑 -overwrite 命令。
以下:
Java代碼架構
java -jar E:\Websoft\mybaits\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.jar -configfile E:\WebWorkSpace\workspace_js\downAttachdemo\src\com\mochasoft\down\generator.xml -overwrite
成功時輸出:MyBatis Generator finished successfully.
2)、java運行關鍵代碼:
Java代碼
List
boolean overwrite = true;
File configFile = new File("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);
其實Java運行,細分能夠分兩種,還有一種能夠去官網學習。
四、生成代碼以後,根據本身的實際項目架構,能夠對生成的代碼進行適當的修改,如把數據庫管理交有spring等等。
================
另一個文章
本文將簡要介紹怎樣利用Mybatis Generator自動生成Mybatis的相關代碼:
1、構建一個環境:
Sql代碼 收藏代碼
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
注:這裏的sql例子來自 http://dev.mysql.com/doc/refman/5.5/en/creating-tables.html
2、運行 mybatis-generator
<context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true" /> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/test" userId="qgd" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="test.model" targetProject="../src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="test.dao" targetProject="../src/main/java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="../src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table tableName="pet" domainObjectName="Pet"> </table> </context>
這個配置文件提供了 mybatis-generator所須要的參數信息:
* 其中classPathEntry 是引用的jdbc的類路徑,這裏將jdbc jar和generator的jar包放在一塊兒了;
* commentGenerator 是用來除去時間信息的,這在配合相似subversion的代碼管理工具時使用頗有效,由於能夠減小沒有必要的註釋遷入;
* jdbcConnection是指定的jdbc的鏈接信息;
* javaTypeResolver式類型轉換的信息,這裏並無用到;
* javaModelGenerator是模型的生成信息,這裏將指定這些Java model類的生成路徑;
* sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路徑等;
* javaClientGenerator是應用接口的生成信息;
* table是用戶指定的被生成相關信息的表,它必須在指定的jdbc鏈接中已經被創建。
運行後生成的代碼包括模型類 test.model.Pet 和 test.model.PetExample , test.dao.PetMapper 接口以及其相對應的 xml 映射文件,在這裏就不在贅述了。
3、使用 mybatis-generator 生成的代碼
如今咱們要利用這些生成的代碼,首先咱們須要一個關於全部映射的配置文件。須要咱們手寫以下:【不知道爲何generator沒有選擇自動生成這個文件,畢竟這些信息generator均可以獲得】
Xml代碼 收藏代碼
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
另外還要使用而後咱們還須要一個Main示例方法來調用這些已生成的代碼:
Java代碼 收藏代碼
package test;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import test.dao.PetMapper;
import test.model.Pet;
import test.model.PetExample;
public class Test {
public static void main(String[] args) throws Exception { String resource = "MapperConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession = sqlMapper.openSession(); PetExample pet = new PetExample(); pet.or().andDeathIsNotNull(); try { PetMapper mapper = sqlSession.getMapper(PetMapper.class); List<Pet> allRecords = mapper.selectByExample(pet); for (Pet s : allRecords) System.out.println(s); } finally { sqlSession.close(); } }
}
這樣就能夠打印出相應的查詢結果信息了。
4、小結
該示例的完整的Eclipse工程見附件mybatis-generator-usage.zip,其中已經包含了示例須要使用的jar包。
本文中只是用到了mybatis-generator 的一部分功能,mybatis-generator 生成代碼的方式還包括ant或Maven腳本,或者直接使用java API生成;另外經過修改配置文件,generator還能夠指定表的生成細節,並能夠添加插件。其功能文檔在generator的分發包的doc文件夾下有更詳細的介紹。
這裏使用的表示沒有主鍵的表,針對有一個主鍵或多個主鍵的表,mybatis-generator的生成的內容也有所不一樣,感興趣的讀者能夠自行試驗一下。 mybatis-generator-usage.zip (1.6 MB)