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

猜你喜欢

转载自blog.csdn.net/huxiangen/article/details/79408020