1. 程式人生 > >Mybatis自動生成實體類和實體映射工具

Mybatis自動生成實體類和實體映射工具

ase 忽略 路徑 package mapping decimal rri upd 需要

Mybatis Mysql生成實體類

用到的Lib包:

mybatis-generator-core-1.3.2.jar
mysql-connector-java-5.1.30.jar

1. 創建一個文件generator.properties, 主要用於配置相關路徑和數據庫信息。

#工程src路徑  
project = D:/project/
#工程存放mapper.xml路徑  
resource = D:/project/
#指定數據連接驅動jar地址  
classPath=D:/project/mysql-connector-java-5.1.30.jar
jdbc_driver=com.mysql.jdbc.Driver
jdbc_url
=jdbc:mysql://localhost:3306/mzq_test jdbc_user=root jdbc_password=

2. 創建一個配置文件 generatorConfig.xml, Mybatis相關配置。

 

<?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="generator.properties"/> <!-- 指定數據連接驅動jar地址 --> <classPathEntry location="${classPath}" /> <!-- 一個數據庫一個context --> <context id="infoGuardian" targetRuntime
="MyBatis3"> <!-- 註釋 --> <commentGenerator > <property name="suppressAllComments" value="true"/><!-- 是否取消註釋 --> <property name="suppressDate" value="true" /> <!-- 是否生成註釋代時間戳--> </commentGenerator> <!-- jdbc連接 --> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="" /> <!-- 類型轉換 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自動轉化以下類型(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成實體類地址 --> <javaModelGenerator targetPackage="com.test.pojo" targetProject="${project}" > <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.test.domain", true:com..test.domain".[schemaName] --> <property name="enableSubPackages" value="false"/> <!-- 是否針對string類型的字段在set的時候進行trim調用 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="com.test.dao.mapping" targetProject="${resource}" > <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.test.domain", true:com..test.domain".[schemaName] --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成mapxml對應client,也就是接口dao --> <javaClientGenerator targetPackage="com.test.dao" targetProject="${project}" type="XMLMAPPER" > <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.test.domain", true:com..test.domain".[schemaName] --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 配置表信息,這裏沒生成一張表,這裏需要改變一次對應表名 --> <table schema="mzq_test" tableName="zte_order" domainObjectName="ZteOrder" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"> <!-- schema即為數據庫名 tableName為對應的數據庫表 domainObjectName是要生成的實體類 enable*ByExample 是否生成 example類 --> <!-- 忽略列,不生成bean 字段 <ignoreColumn column="FRED" />--> <!-- 指定列的java數據類型 <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />--> </table> </context> </generatorConfiguration>

3. 寫一個可以執行的generatorMain類來生成實體類。

import java.io.File;
import java.io.IOException;
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.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GeneratorMain {
    public static void main(String[] args) {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //讀取配置文件  
        File configFile = new File("src/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config;
        try {
            config = cp.parseConfiguration(configFile);

            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator;
            try {
                myBatisGenerator = new MyBatisGenerator(config, callback,
                        warnings);
                myBatisGenerator.generate(null);

                //打印結果  
                for(String str : warnings){
                    System.out.println(str);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        }
    }
}  

 大功告成:

技術分享

gitHub地址: https://github.com/owenma/mybatis-tools

如果覺得有疑問或者對你有幫助 歡迎評論。

作者:森林木馬

出處:http://www.cnblogs.com/owenma/p/7290520.html

如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,但是未經作者本人同意

轉載文章之後必須在 文章頁面明顯位置給出作者和原文連接否則保留追究法律責任的權利。

Mybatis自動生成實體類和實體映射工具