# 资源
代码生成器 MyBatis Generator(MBG)。官方文档 http://www.mybatis.org/generator/。本书使用1.3.3版本。
# 5.1 XML配置详解
MBG xml配置文件各个标签详解见书5.2 一个配置参考示例在项目的 src/main/resources 中创建一个 generator 目录, 在该目录下创建一个generatorConfig.xml文件, 文件内容如下:
```
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载属性文件 -->
<properties resource="jdbc.properties">
</properties>
<settings>
<!-- 使用LOG4J打印日志 -->
<setting name="logImpl" value="LOG4J" />
<!-- 让下划线命名【数据库中列名】方式可以和驼峰式命名方式【java类字段名】相互转化, -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting value="false" name="aggressiveLazyLoading" />
<setting name="cacheEnabled" value="true" />
</settings>
<typeAliases>
<!-- 可以直接使用java的类名 -->
<package name="tk.mybatis.simple.model" />
</typeAliases>
<!--自定义类型处理器-->
<typeHandlers>
<typeHandler javaType="tk.mybatis.simple.type.Enabled"
handler="tk.mybatis.simple.type.EnabledTypeHandler" />
</typeHandlers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value="" />
</transactionManager>
<dataSource type="UNPOOLED">
<!-- ${}用来读取属性文件中的变量值 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- mapper.java和mapper.xml映射,文件路径都相同 -->
<mappers>
<package name="tk.mybatis.simple.mapper" />
</mappers>
</configuration>
```
**1**context属性targetRuntime设置为MyBatis3Simple, 主要是为了避生成与Example相关的代码和方法, 如果需要Example相关的代码, 也以设置为MyBatis3。
**2**.context 属性 defaultModelType 设置为 flat, 目的是使每个表只成一个实体类, 当没有复杂的类继承时, 使用起来更方便。
**3**.因为此处使用的数据库为MySQL, 所以前后分隔符都设置为“`”。
**4**.注释生成器commentGenerator中配置了生成数据库的注释信息,并且禁止在注释中生成日期。
**5**.jdbcConnection简单地配置了要连接的数据源信息。
**6**.javaModelGenerator 配置生成的包名为 test.model, 这个包名可根据自己代码的规范进行修改, targetProject设置在src\main\java中。
**7**sqlMapGenerator配置生成的Mapper.xml文件的位置, 这里的targetProject设置为src\main\resources
**8**javaClientGenerator 配置生成Mapper接口的位置, 这里采用XMLMAPPER类型, 接口和XML完全分离。
**9**最后的table使用通配符“%”匹配数据库中所有的表, 所有表都有主键自增的id字段, sqlStatement针对当前数据库配置MySQL。
# 5.3 运行MyBatis Generator
## 5.3.4 使用Eclipse插件运行
生成代码的注释中都有一个@mbggenerated标记, 这个标记的含义是, 被标记的这个字段或方法是自动生成的, 重新生成时会被覆盖。 没有这个标记的代码不是自动生成的, 不会被覆盖,原来自己写的代码和新生成的代码合并。 除eclipse插件以外的方式方式在重新生成的时候, 这个标记没有任何作用, 原来的文件被新生成的文件替代。插件使用步骤
**1** 5.3.4.1 安装Eclipse插件
**2** 修改 generator/generatorConfig.xml文件,如下图:
![](https://box.kancloud.cn/5e960a990e40aa3df1f4a53ff6d1788d_626x291.png)
**3** 在和 targetProject 有关的相对路径中需要增加当前的项目名称, 将src\main\java 改为 simple\src\main\java, 将 src\main\resources改为simple\src\main\resources。
**4**. 对generator/generatorConfig.xml右键单击鼠标,如下图 ,会自动生成代码
![](https://box.kancloud.cn/2d6dca4483ced360754f4299ef20a93f_417x105.png)