1.Mybatis-Generator说明
MyBatis Generator (MBG) 是 MyBatis MyBatis的代码生成器。它将为所有版本的 MyBatis 生成代码。它将内省一个数据库表(或多个表)并生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG 试图对大量简单的 CRUD(创建、检索、更新、删除)的数据库操作产生重大影响。您仍然需要为连接查询或存储过程编写 SQL 和对象代码。
MBG 生成不同风格和不同语言的代码,这取决于它的配置方式。例如,MBG 可以生成 Java 或 Kotlin 代码。MBG 可以生成与 MyBatis3 兼容的 XML - 尽管现在被认为是 MBG 的遗留用途。生成代码的较新样式不需要 XML。
根据它的配置方式,MyBatis Generator 可能会生成:
与表结构匹配的 Java 或 Kotlin 类。这可能包括:
匹配表主键的类(如果有主键)
匹配表的非主键字段的类(BLOB 字段除外)
一个包含表的 BLOB 字段的类(如果表有 BLOB 字段)
启用动态选择、更新和删除的类
这些类之间有适当的继承关系。请注意,生成器可以配置为生成不同类型的 POJO 层次结构 - 例如,如果您愿意,您可以选择为每个表生成单个域对象。
在某些情况下,MBG 会生成 MyBatis3 Compatible SQL Map XML Files。MBG 为配置中的每个表上的简单 CRUD 函数生成 SQL。生成的 SQL 语句包括:
插入
按主键更新
示例更新(使用动态 where 子句)
按主键删除
删除示例(使用动态 where 子句)
按主键选择
按示例选择(使用动态 where 子句)
举例数
根据表的结构,这些语句有不同的变体(例如,如果表没有主键,则 MBG 不会通过主键函数生成更新)。
适当使用上述对象的 Java 或 Kotlin 客户端类、接口和 Kotlin 扩展方法。客户端类的生成是可选的。MBG 将生成一个与 MyBatis 3.x 映射器基础设施配合使用的映射器接口
MyBatis 生成器旨在在迭代开发环境中良好运行,并且可以作为 Ant 任务或 Maven 插件包含在持续构建环境中。迭代运行 MBG 时需要注意的重要事项包括:
如果存在与新生成的 XML 文件同名的现有文件,MBG 将自动合并 XML 文件。MBG 不会覆盖您对其生成的 XML 文件所做的任何自定义更改。您可以一遍又一遍地运行它,而不必担心丢失对您的 XML 的自定义更改。MBG 将替换之前运行中生成的任何 XML 元素。
MBG不会合并 Java 文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件。如果对生成的 Java 文件进行更改并迭代运行 MBG,则必须手动合并更改。当作为Eclipse 插件运行时 ,MBG 可以自动合并 Java 文件。
MBG不会合并 Kotlin 文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件。如果您对生成的 Kotlin 文件进行更改并迭代运行 MBG,则必须手动合并更改。
官网文档:http://mybatis.org/generator/
2.引入插件
Mybatis-Generator的运行方式有很多种:
基于mybatis-generator-core-x.x.x.jar和其XML配置文件,通过命令行运行。
通过Ant的Task结合其XML配置文件运行。
通过Maven插件运行。
通过Java代码和其XML配置文件运行。
通过Java代码和编程式配置运行。
通过Eclipse Feature运行。
这里只介绍通过Maven插件运行和通过Java代码和其XML配置文件运行这两种方式,两种方式有个特点:都要提前编写好XML配置文件。个人感觉XML配置文件相对直观,后文会花大量篇幅去说明XML配置文件中的配置项及其作用。这里先注意一点:默认的配置文件为ClassPath:generatorConfig.xml。
3.generatorConfig.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="C:/Oracle/Middleware/wlserver_10.3/serv