1. 程式人生 > >Mybatis逆向生成Mapper、xml和實體

Mybatis逆向生成Mapper、xml和實體

      最近公司專案比較多,需要我們快速開發節省時間,所以在建立實體和寫sql上面我們就不能浪費太多的時間,於是就研究了一下mybatis的逆向生成功能,事實證明效率大幅提升,並且程式碼也很規範,所以在這分享給大家,寫的不好的地方歡迎指出,相互交流。

具體的步驟如下:

1.先下載mybatis-generator-core-1.3.2.jar和mysql-connector-java-5.0.4-bin.jar這兩個jar 包;當然也可以直接maven新增,百度即可;這兩個的打包下載地址:http://download.csdn.net/download/huxiangen/10264223

2.建立generator.xml檔案,如下:

<?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="D:\mysql-connector-java-5.0.4-bin.jar" />    
    
  <context id="Mysql2Tables" targetRuntime="MyBatis3">    
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"    
        connectionURL="jdbc:mysql://localhost:3306/ceshi"    
        userId="root"    
        password="root">    
    </jdbcConnection>    
    
    <javaTypeResolver >    
      <property name="forceBigDecimals" value="false" />    
    </javaTypeResolver>    
    
    <javaModelGenerator targetPackage="com.test.model" targetProject="src">    
      <property name="enableSubPackages" value="true" />    
      <property name="trimStrings" value="true" />    
    </javaModelGenerator>    
    
    <sqlMapGenerator targetPackage="com.test.mapper"  targetProject="src">    
      <property name="enableSubPackages" value="true" />    
    </sqlMapGenerator>    
    
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao"  targetProject="src">    
      <property name="enableSubPackages" value="true" />    
    </javaClientGenerator>    
    <table schema="test" tableName="CLIENT" domainObjectName="Client" enableCountByExample="false" enableUpdateByExample="false"    
           enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">    
    </table>    
  </context>    
</generatorConfiguration>

3.建立main方法執行,如下:

package com.test.util;

import java.io.File;    
import java.io.IOException;    
import java.sql.SQLException;    
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.InvalidConfigurationException;    
import org.mybatis.generator.exception.XMLParserException;    
import org.mybatis.generator.internal.DefaultShellCallback;    
    
public class MybatisGeneratorUtil {    
    
    public static void main(String[] args) {    
        try {    
            System.out.println("start generator ...");    
            List<String> warnings = new ArrayList<String>();    
            boolean overwrite = true;    
            File configFile = new File(MybatisGeneratorUtil.class.getResource("/generator.xml").getFile());    
            ConfigurationParser cp = new ConfigurationParser(warnings);
            System.out.println("dsdsds");
            Configuration config = cp.parseConfiguration(configFile);    
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);    
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);    
            myBatisGenerator.generate(null);    
            System.out.println("end generator!");    
        } catch (IOException e) {    
            e.printStackTrace();    
        } catch (XMLParserException e) {    
            e.printStackTrace();    
        } catch (InvalidConfigurationException e) {    
            e.printStackTrace();    
        } catch (SQLException e) {    
            e.printStackTrace();    
        } catch (InterruptedException e) {    
            e.printStackTrace();    
        }    
    }    
        
}  

4.將xml中的jdbcConnection連結密碼使用者改成自己需要逆向生成的資料庫連結;

    table是設定需要生成的資料庫表,tableName是資料庫表名,domainObjectName是實體的名字;

    javaModelGenerator是指定實體生成的位置;

    sqlMapGenerator是指定mapper.xml檔案的位置;

    javaClientGenerator是指定dao的生成檔案位置;

5.直接執行main方法,等待至少4-5秒,然後重新整理專案,即可以在指定資料夾下面看到生成的檔案;

具體的專案截圖:


需要原始碼的也可以到這個地址下載:http://download.csdn.net/download/huxiangen/10264234