读者指南

目的:介绍MBG配置文件的常见选项

### 参考资料
http://mybatis.org/generator/configreference/generatedKey.html
 

### 实例配置

```
<?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="./mysql-connector-java-5.1.47.jar"/>
<context id="MySQLTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/kspage" userId="root"
password="123">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="com.test"
targetProject="/Users/kyh/code/result">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="com.test.mapper"
targetProject="/Users/kyh/code/result">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.test" targetProject="/Users/kyh/code/result">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="%"></table>
<table tableName="apps" domainObjectName="App">
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<columnOverride column="price" property="overprice"></columnOverride>
<ignoreColumn column="on_show" />
</table>
</context>
</generatorConfiguration>
```

运行方式:

文件中中配置的jdbc相对路径相对于java -jar命令的工作路径。
java -jar -jar generator/core/mybatis-generator-core/target/mybatis-generator-core-1.4.1-SNAPSHOT.jar -configfile gc.xml -overwrite

### 生成数据库中所有表的访问代码

<table tableName="%"></table> table可以使用通配符匹配数据库里的所有表
```
<table tableName="%" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false">
<property name="modelOnly" value="false"/>
</table>
```

### 属性说明

domainObjectName 生成的文件名前缀
<property name="useActualColumnNames" value="false"/> 是否使用表的原始列名作为对象的字段名
<generatedKey column="id" sqlStatement="MySql" identity="true" /> insert语句的执行是否需要获取插入的id
<columnOverride column="price" property="overprice"></columnOverride> 针对特定列重写字段名
<ignoreColumn column="on_show" /> 忽略表中的列,和表中不存在该列的效果等同