准备条件:

将下面的文件放入同一目录下

操作步骤:

1/ 在 generatorConfig.xml 中配置相关的参数,与需要被自动生成的表
也可以 执行项目中的MybatisConfigAutoGen.java 将得到的结果复制过来 替换当前文档的内容

2/ 打开cmd 窗口,进入当前文件夹下,执行命令:
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

3/ 将src 中的文件复制到 项目对应的目录下即可根据实际来修改

附:

1/  generatorConfig.xml  的内容为:(下面的配置文件是对应Oracle数据库)

<?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="ojdbc7.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" userId="panie" password="panie123">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.panie.modules.configure.entity" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="mappings.com.panie.modules.configure" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.panie.modules.configure.dao" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="BPMP_VERSION" domainObjectName="BpmpVersion" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context>
</generatorConfiguration>

2/  使用Java 代码 遍历 ORACLE ,生成可用的配置

package com.panie.common.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class MybatisConfigAutoGen
{ public static String jdbcDriver = "oracle.jdbc.OracleDriver";
public static String jdbcUrl = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
public static String jdbcUser = "panie";
public static String jdbcPassword = "panie123";
public static String newline = "\r\n";
public static String tableKey = "BPMP_VERSION"; public static String driverJar = "ojdbc7.jar";//所使用驱动包 public static String entityPkg = "com.panie.modules.configure.entity";
public static String mappingPkg = "mappings.com.panie.modules.configure";
public static String daoPkg = "com.panie.modules.configure.dao"; public static String genConfig()
{
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append(newline);
sb.append("<!DOCTYPE generatorConfiguration PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\" ").append(newline);
sb.append("\"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\"> ").append(newline);
sb.append("<generatorConfiguration>").append(newline);
sb.append(" <classPathEntry location=\"").append(driverJar).append("\"/> ").append(newline);
sb.append(" <context id=\"DB2Tables\" targetRuntime=\"MyBatis3\">").append(newline);
sb.append(" <commentGenerator>").append(newline);
sb.append(" <property name=\"suppressDate\" value=\"true\"/>").append(newline);
sb.append(" <property name=\"suppressAllComments\" value=\"true\"/> ").append(newline);
sb.append(" </commentGenerator>").append(newline);
sb.append(" <jdbcConnection driverClass=\"").append(jdbcDriver).append("\" connectionURL=\"").append(jdbcUrl).append("\" userId=\"").append(jdbcUser).append("\" password=\"").append(jdbcPassword).append("\"> ").append(newline);
sb.append(" </jdbcConnection>").append(newline);
sb.append(" <javaTypeResolver> ").append(newline);
sb.append(" <property name=\"forceBigDecimals\" value=\"false\"/> ").append(newline);
sb.append(" </javaTypeResolver>").append(newline);
sb.append(" <javaModelGenerator targetPackage=\"").append(entityPkg).append("\" targetProject=\"src\"> ").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/> ").append(newline);
sb.append(" <property name=\"trimStrings\" value=\"true\"/>").append(newline);
sb.append(" </javaModelGenerator> ").append(newline);
sb.append(" <sqlMapGenerator targetPackage=\"").append(mappingPkg).append("\" targetProject=\"src\">").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/>").append(newline);
sb.append(" </sqlMapGenerator>").append(newline);
sb.append(" <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"").append(daoPkg).append("\" targetProject=\"src\"> ").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/> ").append(newline);
sb.append(" </javaClientGenerator> ").append(newline);
sb.append(genDbTable()).append(newline);
sb.append(" </context>").append(newline); sb.append("</generatorConfiguration>").append(newline);
return sb.toString(); } public static String genDbTable()
{ StringBuilder sb = new StringBuilder();
Connection conn = null;
Statement stmt; //创建声明
try
{
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword); stmt = conn.createStatement();
ResultSet res = stmt.executeQuery("select * from user_tab_comments");
while(res.next())
{
String tablename = res.getString(1);
String tabletype = res.getString(2);
if(tabletype.equals("TABLE")&&tablename.indexOf(tableKey)!=-1)
{
sb.append("<table tableName=\"");
sb.append(tablename);
sb.append("\" domainObjectName=\"");
sb.append(StringUtils.toCapitalizeCamelCase(tablename));
sb.append("\" enableCountByExample=\"false\" enableUpdateByExample=\"false\" enableDeleteByExample=\"false\" enableSelectByExample=\"false\" selectByExampleQueryId=\"false\"></table>").append(newline); }
} } catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} finally
{
if (conn != null)
{
try
{
conn.close();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} return sb.toString(); } public static void main(String[] args)
{
System.out.println(genConfig());
}
}

  

3/  使用Java 代码 遍历 MYSQL,生成可用的配置

package com.panie.common.utils;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class MybatisConfigAutoGen
{ public static String jdbcDriver = "com.mysql.jdbc.Driver";
public static String jdbcUrl = "jdbc:mysql://localhost:3306/blogdb?useUnicode=true&characterEncoding=utf-8";
public static String jdbcUser = "root";
public static String jdbcPassword = "123456";
public static String newline = "\r\n";
public static String tableKey = "sys_"; public static String driverJar = "mysql-connector-java-5.1.38.jar";//所使用驱动包 public static String entityPkg = "com.panie.modules.sys.entity";
public static String mappingPkg = "mappings.com.panie.sys.configure";
public static String daoPkg = "com.panie.modules.sys.dao"; public static String genConfig()
{
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").append(newline);
sb.append("<!DOCTYPE generatorConfiguration PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\" ").append(newline);
sb.append("\"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\"> ").append(newline);
sb.append("<generatorConfiguration>").append(newline);
sb.append(" <classPathEntry location=\"").append(driverJar).append("\"/> ").append(newline);
sb.append(" <context id=\"DB2Tables\" targetRuntime=\"MyBatis3\">").append(newline);
sb.append(" <commentGenerator>").append(newline);
sb.append(" <property name=\"suppressDate\" value=\"true\"/>").append(newline);
sb.append(" <property name=\"suppressAllComments\" value=\"true\"/> ").append(newline);
sb.append(" </commentGenerator>").append(newline);
sb.append(" <jdbcConnection driverClass=\"").append(jdbcDriver).append("\" connectionURL=\"").append(jdbcUrl).append("\" userId=\"").append(jdbcUser).append("\" password=\"").append(jdbcPassword).append("\"> ").append(newline);
sb.append(" </jdbcConnection>").append(newline);
sb.append(" <javaTypeResolver> ").append(newline);
sb.append(" <property name=\"forceBigDecimals\" value=\"false\"/> ").append(newline);
sb.append(" </javaTypeResolver>").append(newline);
sb.append(" <javaModelGenerator targetPackage=\"").append(entityPkg).append("\" targetProject=\"src\"> ").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/> ").append(newline);
sb.append(" <property name=\"trimStrings\" value=\"true\"/>").append(newline);
sb.append(" </javaModelGenerator> ").append(newline);
sb.append(" <sqlMapGenerator targetPackage=\"").append(mappingPkg).append("\" targetProject=\"src\">").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/>").append(newline);
sb.append(" </sqlMapGenerator>").append(newline);
sb.append(" <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"").append(daoPkg).append("\" targetProject=\"src\"> ").append(newline);
sb.append(" <property name=\"enableSubPackages\" value=\"true\"/> ").append(newline);
sb.append(" </javaClientGenerator> ").append(newline);
sb.append(genDbTable()).append(newline);
sb.append(" </context>").append(newline); sb.append("</generatorConfiguration>").append(newline);
return sb.toString(); } public static String genDbTable()
{ StringBuilder sb = new StringBuilder();
Connection conn = null;
Statement stmt; //创建声明
try
{
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
DatabaseMetaData metadata = conn.getMetaData();
ResultSet res = metadata.getTables("blogdb", null, null, null);
while(res.next())
{
String tablename = res.getString(3);
String tabletype = res.getString(4);
if(tabletype.equals("TABLE")&&tablename.toLowerCase().indexOf(tableKey)!=-1)
{
sb.append("<table tableName=\"");
sb.append(tablename);
sb.append("\" domainObjectName=\"");
sb.append(StringUtils.toCapitalizeCamelCase(tablename));
sb.append("\" enableCountByExample=\"false\" enableUpdateByExample=\"false\" enableDeleteByExample=\"false\" enableSelectByExample=\"false\" selectByExampleQueryId=\"false\"></table>").append(newline); }
} } catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} finally
{
if (conn != null)
{
try
{
conn.close();
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} return sb.toString(); } public static void main(String[] args)
{
System.out.println(genConfig());
}
}

  

Mybatis 自动生成代码的更多相关文章

  1. 【MyBatis】MyBatis自动生成代码查询之爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  2. Mybatis 自动生成代码,数据库postgresql

    最近做了一个项目,使用Mybatis自动生成代码,下面做一下总结,被以后参考: 一.提前准备: 1.工具类:mybatis-generator-core-1.3.2.jar 2.postgresql驱 ...

  3. mybatis自动生成代码插件mybatis-generator使用流程(亲测可用)

    mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,很大程度上减少了业务开发人员的手动编码时间 坐着在idea上用maven构建spri ...

  4. MyBatis自动生成代码示例

    在项目中使用到mybatis时,都会选择自动生成实体类,Mapper,SqlMap这三个东东. 手头上在用的又不方便,找了下网上,其实有很多文章,但有些引用外部文件时不成功,也不方便,所以重新整理了下 ...

  5. mybatis 自动生成代码(mybatis generator)

    pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...

  6. springboot mybatis 自动生成代码(maven+IntelliJ IDEA)

    1.在pom文件中加入需要的依赖(mybatis-generator-core) 和 插件(mybatis-generator-maven-plugin) <dependency> < ...

  7. mybatis自动生成代码工具(逆向工程)

    MyBatis自动生成实体类(逆向工程) MyBatis属于一种半自动的ORM框架,它需要我们自己编写sql语句和映射文件,但是编写映射文件和sql语句很容易出错,所以mybatis官方提供了Gene ...

  8. 自定义Mybatis自动生成代码规则

    前言 大家都清楚mybatis-generate-core 这个工程提供了获取表信息到生成model.dao.xml这三层代码的一个实现,但是这往往有一个痛点,比如需求来了,某个表需要增加字段,肯定需 ...

  9. mybatis自动生成代码

    使用maven集成mybatis-generator插件生成Mybatis的实体类,DAO接口和Map映射文件 本例中,使用的是mysql数据库 前提:表已经建好  mybatis框架的jar包,数据 ...

随机推荐

  1. AC日记——整理药名 openjudge 1.7 15

    15:整理药名 总时间限制:  1000ms 内存限制:  65536kB 描述 医生在书写药品名的时候经常不注意大小写,格式比较混乱.现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即 ...

  2. 用ccproxy + stunnel做个加密代理

    https://www.stunnel.org/downloads.html ccproxy + stunnel做个加密http代理和socks5代理 目前国内用户无法访问某些国外网站,如http:/ ...

  3. 实现了与maya场交互的能力

    今天把模拟节点与maya场的对接做好了,效果如图: 图中黄色线为每个节点受到的外力,由于加了一个重力场,所以外力都是竖直向下. 节点连线方式如图所示: 交互的具体方法是在每次模拟之前,更新每个节点所受 ...

  4. php多进程刷票

    $processNum=20; for($i=1;$i<=$processNum;$i++){ $pid=pcntl_fork(); if($pid==-1){ //todo log }else ...

  5. php正则表达式治疗结巴

    用正则表达式去解决结巴这个问题可以通过下面进行解决: 解决思路是: 先找到重复的不部分 用str_replace($source,$replace,$str);来进行代理 下面分两种情况,最后将这两种 ...

  6. JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service

    随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...

  7. mongodb .net core 调用

    MongoClient _client; IMongoDatabase _db; MongoCredential credential = MongoCredential.CreateMongoCRC ...

  8. Javascript的精华啊【如果以后我看到了或者想到了再继续补吧】

    我不过略有一些讨人喜欢的地方而已,怎么会有什么迷人的魔力呢? 一.语法 JS只有一个数字类型,64位浮点数,所以1和1.0是相同的.为什么这么设计:防止短整型的溢出. 二.对象 1.通常将一个对象的值 ...

  9. ASP.NET MVC3入门教程之第一个WEB应用程序

    本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=91&extra=page%3D1 上一节,我们已经搭建好了AS ...

  10. PHP 页面跳转方法

    1.php header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = ...