一、MGB功能简介

  MyBatis Generator是一个代码生成工具。

  MBG是如何运行的呢?它会检查所连接到的数据库的一个或者多个table,然后生成可用来访问这些table的构建(Java代码、XML文件等)。这减少了一开始在使用MyBatis与数据库连接交互时设置对象和配置文件的种种繁冗的操作。

  MBG目的是,对多数在数据库table上进行的简单的CRUD操作,都能自动生成相应Java代码以及映射文件。但是对于JOIN查询、存储过程等高级SQL操作,仍需要手动配置。

  二、MBG可以生成什么

  2.1 与一个表的结构对应的Java POJOs。

  这可能包括了:

  • a class to match the primary key of the table (if there is a primary key)
  • a class to match the non-primary key fields of the table (except BLOB fields)
  • a class to include the BLOB fields of a table (if the table has BLOB fields)
  • a class to enable dynamic selects, updates, and deletes

  这些类之间会有适当的继承关系(意思是一个表能生成多个类?)。

  通过修改配置,可以产生不同的继承关系。例如,如果需要,可以选择为每个表生成一个域对象。

  2.2 兼容MyBatis/iBATIS的SQL Map XML文件。

  MBG为一个configuration中的每个表上的简单CRUD函数生成相应的SQL。

  可以生成的SQL语句有:

  • insert
  • update by primary key
  • update by example (using a dynamic where clause)
  • delete by primary key
  • delete by example (using a dynamic where clause)
  • select by primary key
  • select by example (using a dynamic where clause)
  • count by example

  结果是依据表的结构而变化的,如果table没有主键,自然就不会生成通过主键来执行的操作。

  2.3 适当使用上述对象的Java Client类(貌似是DAO层的东西)

  Java Client类的生成是可选的,MBG将为MyBatis 3.x生成以下类型的Java Clients:

  • A mapper interface that works with the MyBatis 3.x mapper infrastructure;

  

  MBG will generate Java clients of the following types for iBATIS 2.x:

  • DAOs that conform to the Spring framework
  • DAOs that only use the iBATIS SQL mapping API. These DAOs can be generated in two varieties: supplying the SqlMapClient through either constructor or setter injection.
  • DAOs that conform to the iBATIS DAO Framework (an optional part of iBATIS, this framework is now deprecated and we suggest that you use the Spring framework instead)

  三、在迭代的环境中运行MBG

  MyBatis Generator为在迭代开发的环境中能够良好运行而设计,它可以作为Ant的task,或Maven的plugin,包含在持续构建环境中。

  当以迭代方式运行MBG时,需要注意的重要事项:

 1、如果存在与新生成的XML文件同名的现有文件,MBG将自动合并XML文件。

  MBG不会覆盖你对它生成的XML文件所做的任何自定义更改。您可以一次又一次地运行它,而不必担心丢失对XML的自定义更改。MBG将替换上次运行中生成的任何XML元素。

 2、MBG不会合并Java文件

  它既可以覆盖现有文件,也可以用不同的惟一名称保存新生成的文件。

  如果你对生成的Java文件进行更改并迭代运行MBG,则必须手工合并更改这些Java文件。

  当作为Eclipse插件运行时,MBG可以自动合并Java文件。

  四、MBG的依赖关系

  除了JRE之外,MBG没有任何依赖项。要求JRE 6.0或以上版本。

  MBG_1.3.6的运行要求Java 8,该版本可以生成基于 MyBatis Dynamic SQL的代码,当然默认是不开启的。

  不同版本的特性请看(What's New in MyBatis Generator)。

  此外,连接数据库所用的驱动(JDBC driver),必须实现DatabaseMetaData接口,特别是getColumns和getPrimaryKeys方法。

  

  

MyBatis MyBatis Generator入门的更多相关文章

  1. mybatis教程:入门>>精通>>实战

    以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记.后来项 ...

  2. MyBatis(1)——快速入门

    MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  3. MyBatis - 7.MyBatis逆向 Generator

    MyBatis Generator: 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类.支持基本的增删改查,以及QBC风格的条 ...

  4. 修改mybatis plus Generator模板生成字段注释枚举常量

    修改mybatis plus Generator模板生成字段注释枚举常量 本文基于最新的mybatis-plus 3.0.1版本源码修改,如果使用其它版本,处理方式也类似,主要是生成Entity的Fr ...

  5. Mybatis使用generator自动生成的Example类使用OR条件查询

    参考:https://blog.csdn.net/qq_36614559/article/details/80354511 public List<AssetsDevicetypeRefacto ...

  6. (转) MyBatis(1)——快速入门

    MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  7. Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建

    目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...

  8. Mybatis基础及入门案例

    这几天正在对SSM框架的知识进行一个回顾加深,有很多东西学的囫囵吞枣,所以利用一些时间进一步的学习.首先大概了解一下mybatis的使用,再通过一个案例来学习它. 什么是MyBatis Mybatis ...

  9. (转)MyBatis框架的学习(二)——MyBatis架构与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图: 下面作简要概述: S ...

  10. mybatis使用generator自己主动生成代码时的类型转换

    使用mybatis的generator自己主动生成代码,可是oracle数据库中number(6,2)总是自己主动转成BigDecimal.我想要转成的是float类型 这样就写了一个类型转换器,须要 ...

随机推荐

  1. QtCreator集成的MSVC套件有问题

    MSVC编译出来的内部签名算法的程序,相同的代码,验签结果和MINGW编译出来的不一样.MINGW编译出来的结果是正确的 怀疑是因为QtCreator集成的msvc有问题,可能是编码问题,可能是其他问 ...

  2. SpringBoot配置JDBC连接MySql数据库的时候遇到了报错:HikariPool-1 - Exception during pool initialization

    使用SpringBoot做JAVA开发时,JDBC连接MySql数据库的时候遇到了报错: ERROR 10392 --- [ main] com.zaxxer.hikari.pool.HikariPo ...

  3. Echarts 设置 图标 默认平铺 数据为零时绘画

    好久没写了 最近接了一个统计的功能  以前写的都是一些最基础的统计 废话少说  我先把自己遇到的问题列出来 仅供参考 __________________我是分割线__________________ ...

  4. Python动态展示遗传算法求解TSP旅行商问题(转载)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/jiang425776024/articl ...

  5. nginx 记录

    正则 ~ 区分大小写匹配 ~* 不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 ^ 以什么开头的匹配 $ 以什么结尾的匹配 转义字符\ 可以转. * ?等 * 代表任意字符 ...

  6. JAVA的main方法

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须 ...

  7. CentOS源码安装 Tomcat/8.0.24

    依个人的习惯,喜欢将源码安装在/usr/local这个目录下面: 第一步:下载源码 wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.2 ...

  8. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_03-vuejs研究-vuejs基础-入门程序

    本次测试我们在门户目录中创建一个html页面进行测试,正式的页面管理前端程序会单独创建工程. 在门户目录中创建vuetest目录,并且在目录下创建vue_01.html文件 <!DOCTYPE ...

  9. Python实现的选择排序算法原理与用法实例分析

    Python实现的选择排序算法原理与用法实例分析 这篇文章主要介绍了Python实现的选择排序算法,简单描述了选择排序的原理,并结合实例形式分析了Python实现与应用选择排序的具体操作技巧,需要的朋 ...

  10. Hadoop常用命令介绍

    本文主要介绍 Hadoop 常用的命令. test命令 用于检测文件或目录是否存在,判断文件或目录大小. -test -[defsz] <path> : Answer various qu ...