本文博客地址:http://blog.csdn.net/soonfly/article/details/64499423

逆向工程下载

链接:https://pan.baidu.com/s/1YOAq8w-1gex9e-n8wFARpA 密码:op9h

mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo、Mapper xml文件、Mapper Interface接口文件。 
mybatis-generator有很多种用法:命令行、eclipse/IDEA、Maven插件,其使用原理完全一样。 
无论哪种方式,首先要准备两个组件包:mybatis-generator-core-1.X.X.jar 和MySQL-connector-Java-5.X.XX.jar (点击下载两个组件

命令行方式

从这个入手,因为最方便。 
1、新建任意目录(D:\A-TWM\Mybatis),把两个组件拷入目录。 

2、新建配置文件,命名:config.xml 
补充:下载好的jar包里面有帮助文档,打开后里面有配置文件的模板。 
config.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:\A-TWM\Mybatis\mysql-connector-java-5.1.26-bin.jar" /> <context id="sqlGenerate" targetRuntime="MyBatis3">
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator> <!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/tangwenmingdb?characterEncoding=utf8"
userId="root" password="root">
</jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer;
为 true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- 生成Pojo包名和位置 -->
<javaModelGenerator targetPackage="twm.mybatisdemo.pojo"
targetProject="D:\A-TWM\Mybatis\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true" />
<!-- 清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator> <!-- 生成Mapper映射XML文件位置 -->
<sqlMapGenerator targetPackage="twm.mybatisdemo.mapper"
targetProject="D:\A-TWM\Mybatis\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator> <!-- 生成Mapper接口文件位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="twm.mybatisdemo.mapper" targetProject="D:\A-TWM\Mybatis\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator> <!-- 要生成哪些表(更改tableName和domainObjectName就可以) -->
<!-- tableName:要生成的表名
domainObjectName:生成后的实例名
enableCountByExample:Count语句中加入where条件查询,默认为true开启
enableUpdateByExample:Update语句中加入where条件查询,默认为true开启
enableDeleteByExample:Delete语句中加入where条件查询,默认为true开启
enableSelectByExample:Select多条语句中加入where条件查询,默认为true开启
selectByExampleQueryId:Select单个对象语句中加入where条件查询,默认为true开启
-->
<table tableName="user" domainObjectName="User"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />
<table tableName="category" />
<table tableName="order"/>
<table tableName="product"/>
<table tableName="order_detail"/>
</context>
</generatorConfiguration>

如果table里边不配置property,默认将所有字段逆向生成为类属性。 
如果有些字段并不想生成为类属性,可以用ignoreColumn标签:

<ignoreColumn column="FRED" />//忽略字段 

还可以指定逆向生成时,字段到属性的转换对应关系

<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//无论字段是什么类型,生成的类属性都是varchar。 

3、通过cmd打开命令窗口 
运行:java -jar mybatis-generator-core-1.3.2.jar -configfile config.xml -overwrite 
出现MyBatis Generator finished successfully.表示运行成功,将指定生成位置(这里是src)的源码拷入工作项目中即可。 

Eclipse方式

1、新建工程、将组件和将配置文件config.xml放到对应的目录 

2、在main函数中写代码运行

public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指向逆向工程配置文件
File configFile = new File("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);
}

3、以application的方式运行就可以了

mybatis-generator生成逆向工程两种方式的更多相关文章

  1. MyBatis配置数据源的两种方式

    ---------------------siwuxie095                                     MyBatis 配置数据源的两种方式         1.配置方 ...

  2. MyBatis获取参数值的两种方式

    MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串拼接,#{}的本质就是占位符赋值 ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 ...

  3. mybatis批量保存的两种方式(高效插入)

    知识点:mybatis中,批量保存的两种方式 1.使用mybatis foreach标签 2.mybatis ExecutorType.BATCH 参考博客:https://www.jb51.net/ ...

  4. mybatis Generator生成代码及使用方式

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5889312.html 为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,OR ...

  5. mybatis调用存储过程的两种方式

    先总结和说明一下注意点: 1.如果传入的某个参数可能为空,必须指定jdbcType 2.当传入map作为参数时,必须指定JavaType 3.如果做动态查询(参数为表名,sql关键词),可以使用${} ...

  6. 数据库链接 mybatis spring data jpa 两种方式

    jdbc mybatis                     spring data jpa dao service webservice jaxrs     jaxws  springmvc w ...

  7. Mybatis Dao开发的两种方式(一)

     原始Dao的开发方式: 1.创建数据库配置文件db.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localh ...

  8. mybatis 传递参数的两种方式与模糊匹配 很重要

  9. mybatis Generator生成代码及使用方式(转载)

    转载自:http://www.cnblogs.com/fengzheng/p/5889312.html 文章很棒,很不错,转了.

随机推荐

  1. Redis 性能问题的记录

    最近线上使用redis, 查询的情况不甚理想, 这个查询操作是个 lua 脚本, 包含如下操作 开发机 redis, 没有其他干扰, 插入的 zset 有 5000 member 左右, 使用的 re ...

  2. jQuery事件命名空间多事件绑定自定义事件js 命名空间 javascript命名空间

    http://blog.csdn.net/pigpigpig4587/article/details/24727791 jQuery事件命名空间 jQuery支持事件命名空间,以方便事件管理.例如,在 ...

  3. 使用Log4j将程序日志实时写入Kafka(转)

    原文链接:使用Log4j将程序日志实时写入Kafka 很多应用程序使用Log4j记录日志,如何使用Kafka实时的收集与存储这些Log4j产生的日志呢?一种方案是使用其他组件(比如Flume,或者自己 ...

  4. ASP.NET Razor 简介

    ylbtech-.NET: ASP.NET Razor 简介 Razor 不是一种编程语言.它是服务器端的标记语言. 1. 什么是 Razor?返回顶部 Razor 是一种标记语法,可以让您将基于服务 ...

  5. poj Dropping tests 01分数规划---Dinkelbach算法

    果然比二分要快将近一倍.63MS.二分94MS. #include <iostream> #include <algorithm> #include <cstdio> ...

  6. 非常好的课程,尤其是有NLP方向的内容,好好学习

    课程地址如下: https://mooc.study.163.com/smartSpec/detail/1001319001.htm 有一个非常好的笔记: https://github.com/fen ...

  7. Cesium中导入三维模型方法(dae到glft/bgltf) 【转】

    http://blog.csdn.net/l491453302/article/details/46766909 目录(?)[+] Cesium中目前支持gltf和bgltf两种格式.“gltf是kh ...

  8. Windows 添加计划任务 每隔一定时间执行指定批处理脚本

    schtasks /create /sc minute /mo 20 /tn "TestBatch" /tr C:/TestBatch.bat TestBatch.bat echo ...

  9. 排序算法的实现(归并,快排,堆排,希尔排序 O(N*log(N)))

    今天跟着左老师的视频,理解了四种复杂度为 O(N*log(N))的排序算法,以前也理解过过程,今天根据实际的代码,感觉基本的算法还是很简单的,只是自己写的时候可能一些边界条件,循环控制条件把握不好. ...

  10. Java系列: 关于虚引用及其测试代码

    “虚引用”顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期.如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收.虚引用主要用来跟踪对象被 ...