MyBatis MyBatis Generator入门
一、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入门的更多相关文章
- mybatis教程:入门>>精通>>实战
以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记.后来项 ...
- MyBatis(1)——快速入门
MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- MyBatis - 7.MyBatis逆向 Generator
MyBatis Generator: 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类.支持基本的增删改查,以及QBC风格的条 ...
- 修改mybatis plus Generator模板生成字段注释枚举常量
修改mybatis plus Generator模板生成字段注释枚举常量 本文基于最新的mybatis-plus 3.0.1版本源码修改,如果使用其它版本,处理方式也类似,主要是生成Entity的Fr ...
- Mybatis使用generator自动生成的Example类使用OR条件查询
参考:https://blog.csdn.net/qq_36614559/article/details/80354511 public List<AssetsDevicetypeRefacto ...
- (转) MyBatis(1)——快速入门
MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建
目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...
- Mybatis基础及入门案例
这几天正在对SSM框架的知识进行一个回顾加深,有很多东西学的囫囵吞枣,所以利用一些时间进一步的学习.首先大概了解一下mybatis的使用,再通过一个案例来学习它. 什么是MyBatis Mybatis ...
- (转)MyBatis框架的学习(二)——MyBatis架构与入门
http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图: 下面作简要概述: S ...
- mybatis使用generator自己主动生成代码时的类型转换
使用mybatis的generator自己主动生成代码,可是oracle数据库中number(6,2)总是自己主动转成BigDecimal.我想要转成的是float类型 这样就写了一个类型转换器,须要 ...
随机推荐
- RuntimeException和Exception的区别
1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 2.Error是Throwable 的子类,用于指示合理的应用 ...
- Jenkins与gitlib实现自动化部署与持续构建
Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和 ...
- [oracle]oracle表在什么情况下会被锁住(转载)
DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它 ...
- Microsoft Office-未响应
默认打印机的配置可能与 Word.Excel 打开文件一操作就未响应有关 今天写点文档突然发现 Word.Excel 打开文件一操作就未响应,新建一个文件编辑倒是没有问题,很奇怪.搜到的博客基本全是由 ...
- OpenCL多次循环执行内核的一个简单样例
最近有不少朋友在多次循环执行OpenCL内核程序的时候碰到一些问题.由于对OpenCL初学者而言可能比较普遍,因此我这里给出一个清晰简单的demo来掩饰如何简单又高效地执行循环执行OpenCL内核. ...
- RocketMQ采坑记
先来一篇解释比较多的实例 https://www.cnblogs.com/super-d2/p/4154541.html No route info of this topic, PushTopic ...
- EasyNetQ使用(五)【基于主题的路由,控制队列名称】
RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息.一个主题是由点号分隔的单词列表,随消息一同发布.例如:“stock.usd.nyse” 或 “book.uk ...
- Jmeter 逻辑控制器 之 Include Controller
一.认识 Include Controller Include Controller :译为包含控制器,用来添加 Test Fragment(测试片段).具体是什么意思呢,我们先来了解下 Test F ...
- PJzhang:钓鱼域名生成工具urlcrazy
猫宁!!! www.baidu.com和www.baibu.com是不是很相似,urlcrazy可以自动生成一大批. 这款工具的作者是Andrew Horton 工具下载地址: http://www. ...
- Android之makefile
在Android的源代码中,随处可见Makefile,那么Makefile到底是用来干嘛的呢?其实Makefile和Maven.ANT.Gradle一样,属于构建工具,当项目比较庞大的时候,就可以使用 ...