文件头:
<?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>
1、<properties>子元素(0个或一个)
作用:用于指定外部元素,不是必须的元素
<properties resource="db.properties"/>
2、<classPathEntry>子元素 (0个或多个)
作用:指定驱动的路径,不是必须的元素
<classPathEntry location="D:\Java\pleiades\eclipse\plugins\mssql-jdbc-7.0.0.jre8.jar" />
3、<context>子元素(1个或多个)
作用:指定生成一组对象的环境(如连接的数据库,要生成对象的类型和数据库中对应的表)
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple>
id:必须项
defaultModelType属性:定义了生成怎样的文件(实体类)
1、conditional:默认值,类似hierarchical
2、flat:所有内容(主键、blob字段)邓全部生成在一个对象中
3、hierarchical: 主键单独生成一个对象,Blob等单独生成一个对象,其他属性生成在一个对象中
targetRuntime属性:
1、mybatis3:默认值,可以生成XXBySample文件
2、mybatis3Simple:类似mybatis3,只是不生成XXBySample文件
<property>子元素(0个或多个)
1、autoDelimitKeywords属性:自动识别数据库关键字,添加分隔符
<property name="autoDelimitKeywords" value="true"/>
2、beginningDelimiter属性 endingDelimiter属性
作用:用于标记数据库对象吗的符号,如ORACLE是双引号,MYSQL默认是`反引号
<property name="beginningDelimiter" value="`" />
<property name="endningDelimiter" value="`" />
3、javaFormatter属性:格式化java代码
<property name="javaFormater" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
4、xmlFormatter属性:格式化xml代码
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
5、javaFileEncoding属性:生成java文件的编码,默认使用当前平台的编码
<property name="javaFileEncoding" value="utf-8 />
<plugin>子元素(0个或多个)
作用:用于扩张或修改代码生成器生成的代码
<commnetGenerator>子元素(0个或1个)
作用:生成表或字段的备注信息
supperssAllComments:阻止生成注释,默认为false
supperssDate:阻止生成的注释包含时间戳,默认为false
<commentGenerator>
<property name="supperssAllComments" value="true"/>
<property name="supperssDate" value="true" />
</commentGenerator>
<jdbcConnection>子元素(1个)
作用:用于指接数据库连接信息
<jdbcConnection
driverClass="com.mysql.jdbc.Driver" ====>连接驱动
connectionURL="jdbc:mysql://localhost:3306/test" ====>连接地址
userId="root" ====>连接的用户名
password="test123" ====>密码
>
</jdbcConnection>
<javaTypeResolver>子元素(0个或1个)
作用:指定JDBC类型和java类型如何转化
<javaTypeResolver>
该属性可以控制是否强制DECIMAL和NUMBERIC类型的字段转换为Java的java.math.BigDecimal,默认为false,不推荐配置
<property name="forceBigDecimals" value="true"/>
</javaTypeResolver>
<javaModelGenerator>子元素(1个)
作用:控制生成的实体类
<javaModelGenerator
targetPackage="com.dsb.test.entity" ====>生成实体类存放的包名
targeProject="src/main/java/" ====>指定目标项目路径
>
<property name="trimStrings" value="true"/> ====>对数据库查询结果进行trim操作
</javaModelGenerator>
<sqlMapGenerator>子元素(0个或1个)
作用:生成xml的sql映射文件
<sqlMapGenerator
targetPackage="com.dsb.test.entity.dao" ====>生成xml的sql映射文件存放的包名
targetProject="src/main/resources" ====>指定目标项目路径
>
</sqlMapGenerator>
<javaClientGenerator>(0个或1个)
作用:生成mapper接口
<javaClientGenerator
type="XMLMAPPER" ====>mapper接口生成器
targetPackage="com.dsb.test.entity.dao" ====>生成mapper接口的存放路径
targetProject="src/main/java" ====>指定目标项目路径
>
</javaClientGenerator>
<table>(1个或多个)
作用:配置与实体类对应的表
<table tableName="student">
<generatedKey column="id" sqlStatement="mysql"/>
</table>
</context>
</generatorConfiguration>
mysql的简单配置
<?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>
<context id="MysqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test"
userId="root"
password="test123">
</jdbcConnection>
<javaModelGenerator targetPackage="com.dsb.test.entity" targetProject="src\main\java">
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.dsb.test.entity" targetProject="src\main\resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.dsb.test.entity.dao" targetProject="src\main\java"/>
<table tableName="User">
<generatedKey column="id" sqlStatement="Mysql"/>
</table>
</context>
</generatorConfiguration>
参考于:
https://blog.youkuaiyun.com/xp_lx1/article/details/80074738
https://blog.youkuaiyun.com/gavin5033/article/details/82894319