添加MGB必要的文件头
<?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_O.dtd">
<generatorConfiguration>
<!-- 具体配置内容 -->
</generatorConfiguration>
generatorConfiguration 下有三个子集标签分别是properties、classPathEntry和context在配置这3个标签的时候,必须注意它们的顺序,要和这里 列举的顺序一致
第一个时properties标签。这个标签用来指定外部的属性元素,最多可以配置1个,也可以不配置。
properties 标签用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用${property}这种形式的引用,通过这种方式引用属性文件中的属性值, 对于后面需要配置的 JDBC 信息会很有用
properties 标签包含 resource和url两个属性,只能使用其中一个属性来指定,同时出现则会报错。
• resource :指定 classpath 下的属性文件,类似 com/myproject/generatorConfig.properties这样的属性值
• url :指定文件系统上的特定位置,例如file:///C:/myproject/generatorConfig.properties
第二个是 classPathEntry 标签。这个标签可以配置多个,也可以不配置。
classPathEntry 标签最常见的用法是通过属性 location 指定驱动的路径,代码如下。
<classPathEntry location="E:\mysql\mysql-connector-java-5.1.29.jar"/>
第三个是 context 标签。这个标签是要重点讲解的,该标签至少配置1个,可以配置多个
context 标签用于指定生成组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行MGB的时候还可以指定要运行的 context
context 标签只有一个必选属id ,用来唯一确定该标签,该id属性可以在运行MGB时使用, 此外还有几个可选属性.
• defaultModelType: 这个属性很重要,定义了 MBG 如何生成实体类。该属性有以下可选值
> conditional: 默认值,和下面的 hierarchical 类似,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,而是会将该字段合并到基本实体类中。
> flat::该模型只为每张表生成一个实体类。这个实体类包含表中的所有字段,这种模型最简单,推荐使用。
> hierarchical :如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段,则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段另外生成个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系。
• targetRuntime : 此属性用于指定生成的代码的运行时环境,支持以下可选值
> MyBatis3: 默认值 。(按个人需求选择,建议使用该种配置)
> MyBatis3Simple : 这种情况不会生成与 Example相关的方法。(后边会有介绍 Example)
• introspectedColumnimpl :该参数可以指定扩展orgmybatis.generator.api.Introspected Column 类的实现类。
一般情况下,使用一下配置即可
<context id="mysql" defaultModelType="flat">
如果不希望生成和 Example 查询有关的内容,则可以按照如下方法进行配置
<context id="mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
MBG 配置中的其他几个标签基本上都是context的子标,这些子标签(有严格的配置顺序,后面括号中的内容为这些标签可以配置的个数)包括以下几个。
• property (0 个或多个)
• plugin (0 个或多个)
• commentGenerator (0 个或 1个)
• jdbcConnection (1 个)
• javaTypeResolver (0个或 1个)
• javaModelGenerator (1 个)
• sqlMapGenerator (0 个或 1个)
• javaClientGenerator (0 个或1 个)
• table (1个或多个)
->property