記錄一下:mybatis配置

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"/>
spring

<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,默認字段都生成爲類屬性。
//忽略字段
//不管字段是什麼類型,生成的類屬性都是varchar。session

三、運行有四種:命令生成(最簡單)、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 warnings = new ArrayList ();
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、構建一個環境:

  1. 首先建立一個表:

Sql代碼 收藏代碼
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

  1. 而後注入數據
    Sql代碼 收藏代碼
    insert into pet values('Fluffy', 'Harold', 'cat', 'f', '1993-02-04', null);
    insert into pet values('Claws', 'Gwen', 'cat', 'm', '1994-03-17', null);
    insert into pet values('Buffy', 'Harold', 'dog', 'f', '1989-05-13', null);
    insert into pet values('Fang', 'Benny', 'dog', 'm', '1990-08-27', null);
    insert into pet values('Bowser', 'Diane', 'dog', 'm', '1979-08-31', '1995-07-29');
    insert into pet values('Chirpy', 'Gwen', 'bird', 'f', '1998-09-11', null);
    insert into pet values('Whistler', 'Gwen', 'bird', null, '1997-12-09', null);
    insert into pet values('Slim', 'Benny', 'snake', 'm', '1996-04-29', null);

注:這裏的sql例子來自 http://dev.mysql.com/doc/refman/5.5/en/creating-tables.html

  1. 在 Mybatis 主頁 http://code.google.com/p/mybatis/ 上下載 Mybatis mybatis-generator-core [本文使用的是 1.3.0 版本]。固然運行 mybatis-generator 生成的代碼還須要下載 mybatis 的 jar 包[本例使用的是 3.0.2 版本],和相關數據庫的 jdbc [本文中使用的是MySql的jdbc] 。

2、運行 mybatis-generator

  1. 要運行 generator ,須要給 generator 提供一個配置文件,指定其生成的數據庫的相關信息。
    如下是一個示例:
    Xml代碼 收藏代碼

    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">


<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鏈接中已經被創建。

  1. mybatis-generator 有多種運行方式,最簡單的就是命令行的方式,只須要指定相應的配置文件的路徑便可:
    Java代碼 收藏代碼
    java -jar mybatis-generator-core-1.3.0.jar -configfile ../src/main/resource/config.xml -overwrite

運行後生成的代碼包括模型類 test.model.Pet 和 test.model.PetExample , test.dao.PetMapper 接口以及其相對應的 xml 映射文件,在這裏就不在贅述了。

3、使用 mybatis-generator 生成的代碼

  1. 如今咱們要利用這些生成的代碼,首先咱們須要一個關於全部映射的配置文件。須要咱們手寫以下:【不知道爲何generator沒有選擇自動生成這個文件,畢竟這些信息generator均可以獲得】
    Xml代碼 收藏代碼

    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">















  2. 另外還要使用而後咱們還須要一個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)

相關文章
相關標籤/搜索