MyBatis Generator - 生成代码配置文件

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值