使用 MyBatis Generator 工具生成MyBatis相關類和Mapper文件

1、準備工做

使用Eclipse創建一個Java項目,結構以下:html

其中,GenMyBatis.java用於存放項目的main函數。GenTarget目錄下有三個子目錄mapper_java、mapper_xml、object_example_java。還有兩個配置文件database.properties。java

另外,項目還須要引用一個jar包:E:\jars\mybatis-generator-core-1.3.2.jar。這個包能夠從這個地址獲取:https://github.com/mybatis/generator/releasesgit

2、創建database.properties和generatorConfig.xml

database.properties用於一些數據庫鏈接相關的配置。由於這部分配置變化的可能性較大,所以單獨放到一個文件中:github

classPath=E:/jars/mybatis-3.2.2/lib/ojdbc14-10.2.0.2.0.jar
jdbc_driver=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc_user=這裏輸入用戶名  
jdbc_password=這裏輸入密碼

generatorConfig.xml是MyBatisGenerator的配置文件,代碼以下:sql

<?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>
    <!-- 基礎配置文件 -->
    <properties resource="database.properties"/>  
    <!-- ojdbc14-10.2.0.2.0.jar 路徑 -->
    <classPathEntry location="${classPath}" />
    <context id="oracleGenTest" targetRuntime="MyBatis3" >
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <jdbcConnection 
            driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" 
            userId="${jdbc_user}" password="${jdbc_password}" />
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成對象和Example類相關配置 -->
        <javaModelGenerator targetPackage="GenTarget.object_example_java"
            targetProject="src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成mapper.xml相關配置 -->
        <sqlMapGenerator targetPackage="GenTarget.mapper_xml"
            targetProject="src">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- 生成mapper.java相關配置 -->
        <javaClientGenerator targetPackage="GenTarget.mapper_java"
            targetProject="src" type="XMLMAPPER">
            <property name="enableSubPackages" value="false" />  
        </javaClientGenerator>
        <!-- 數據表 -->
        <table tableName="game_record"></table>
    </context>
</generatorConfiguration>

完成上述配置後,就能夠開始着手寫java部分的代碼了。其中context下table條目中的tableName能夠指定要生成那些數據表的對象和mapper。使用通配符%能夠表明全部的字符,如info_%表明全部以「info_」開頭的表。數據庫

3、實現main函數並運行

在 GenMyBatis.java 中鍵入如下代碼:api

package GenMyBatisTest;

import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

/**
 * MyBatisGenerator 學習
 * @author Tsybius2014
 * @date 2016年5月17日
 * @time 下午11:58:21
 * @remark
 */
public class GenMyBatis {
    public static void main(String[] args) {
        try {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("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);
            System.out.println("done.");
        } catch (Exception ex) {
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter(stringWriter);
            ex.printStackTrace(printWriter);
            System.out.println(stringWriter.toString());
        }
    }
}

運行完畢後,便可看到效果:mybatis

其中GameRecordMapper.java的圖標有紅底×號標記,這是由於我沒有引用MyBatis相關的jar包,並非代碼生成的問題。oracle

4、其餘

MyBatis Generator 的在線幫助文檔參見: http://www.mybatis.org/generator/index.htmlapp

END

相關文章
相關標籤/搜索