MyBatis Generator - 生成代码配置文件
<?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>
<!-- pom-run as-Maven build...- mybatis-generator:generate -->
<!-- 将mysql-connector-java依赖加入MyBatis3自动生成环境-->
<classPathEntry location="${mysql-connector-java jar包位置}"/>
<context id="MyBatis3CodeGenerator"
targetRuntime="MyBatis3">
<!--各类标签的配置顺序-->
<!--
property*,
plugin*,
commentGenerator?,
(connectionFactory|jdbcConnection),
javaTypeResolver?,
javaModelGenerator,
sqlMapGenerator?,
javaClientGenerator?,
table+)
-->
<!-- 生成 java文件的编码-->
<property name="javaFileEncoding" value="UTF-8" />
<!-- 生成的 model自行实现 Serializable接口-->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<!-- 注释生成器-->
<commentGenerator>
<!-- 是否阻止mybatis自动生成的注释-->
<property name="suppressAllComments" value="true"/>
<!-- 是否阻止生成的注释包含时间戳-->
<property name="suppressDate" value="true"/>
<!-- 采用数据库中的注释 (当 suppressAllComments属性为 true时,无效)-->
<property name="addRemarkComments" value="false"/>
</commentGenerator>
<!-- JDBC链接-->
<jdbcConnection driverClass="${jdbc.driverclass}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 数据类型解析-->
<javaTypeResolver>
<!-- 默认false,会分情况解析 JDBC DECIMAL和 NUMERIC 类型,可能结果类型有 BigDecimal, Long, Integer, Short
为 true时把JDBC DECIMAL和 NUMERIC 类型解析为 java.math.BigDecimal
若字段用户记录小数,建议开启
-->
<property name="forceBigDecimals" value="true"/>
<!-- 是否用 Java8新特性中的时间相关类代替 java.util.Date来表示 JDBC时间类型;
为 true,JDBC 的 datetime类型将会使用 java.time.LocalDateTime
-->
<property name="useJSR310Types" value="false" />
</javaTypeResolver>
<!-- 数据模型 model创建器-->
<javaModelGenerator targetProject="src/main/java"
targetPackage="com.example.demo.model" >
<property name="enableSubPackages" value="true"/>
<!-- 去除数据库返回字符首尾的空格字符-->
<property name="trimStrings" value="true"/>
<!-- 指定 example文件的生成位置 (可能因为运行环境被忽略)-->
<property name="exampleTargetProject" value="src/main/java" />
<property name="exampleTargetPackage" value="com.example.demo.model.example" />
<!-- 生成全参和无参构造,并且映射配置文件中的 resultMap将使用构造函数创建对象,而不是用 setter方法-->
<property name="constructorBased" value="false" />
<!-- 生成不变类,若为 true,只有全参构造和 getter方法,没有 无参构造和 setter方法;同时会忽略 constructorBased属性设置-->
<property name="immutable" value="false" />
</javaModelGenerator>
<!-- xml映射文件创建器-->
<sqlMapGenerator targetPackage="resources.mapper"
targetProject="src/main">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成 mapper接口创建器-->
<javaClientGenerator type="XMLMAPPER"
targetProject="src/main/java"
targetPackage="com.example.demo.mapper">
<!--
对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口 targetPackage/targetProject:同javaModelGenerator
type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--
要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名;
modelType 属性有三种值:conditional、flat、hierarchical
flat:生成数据实体模型时,将主键不分离为单独 Bean;
hierarchical:生成数据实体模型时,将主键分离为单独 Bean;
conditional:生成数据实体模型时,若主键有一个,则不分离为单独 Bean,否则分离;
-->
<table tableName="s_user"
domainObjectName="User"
enableInsert="true"
enableDeleteByPrimaryKey="true"
enableDeleteByExample="true"
enableUpdateByPrimaryKey="true"
enableUpdateByExample="true"
enableSelectByPrimaryKey="true"
enableSelectByExample="true"
enableCountByExample="true"
modelType="flat">
<!-- 是否应用表字段原来的命名方式,false时采用驼峰命名方式-->
<property name="useActualColumnNames" value="false"/>
</table>
</context>
</generatorConfiguration>