Mybatis三剑客之Mybatis-generator的使用

1> 先在pom文件<build>标签中添加mybatis-generator插件的依赖

           <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>


                <!-- 在生成table相关文件时,同名的文件进行覆盖,可不进行设置 -->
                <configuration>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

2>创建generatorConfig.xml文件(在resources目录下)

3>在generatorConfig.xml文件中进行一些配置,可参考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>
    <!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
        resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties
        url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
        注意,两个属性只能选址一个;

        另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用
    <properties resource="" url="" />
     -->

    <!-- 在MBG工作的时候,需要额外加载的依赖包 mysql-connector-java-5.1.6.jar
        location属性指明加载jar/zip包的全路径-->
   <classPathEntry location="D:\java\apache-maven-3.6.3\mysql-connector-java-5.1.6.jar" />
     <context id="DB2Tables" targetRuntime="MyBatis3">

         <!--去掉生成的文件中大量注释-->
         <commentGenerator>
             <property name="suppressAllComments" value="true"/>
         </commentGenerator>

<!--         5.1.6驱动是没有.cj的-->
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                         connectionURL="jdbc:mysql://127.0.0.1:3306/mall?characterEncoding=utf-8"
                         userId="root"
                         password="123456">
             <!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
         </jdbcConnection>



    <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
        <!--
            true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
            false:默认,
                scale>0;length>18:使用BigDecimal;
                scale=0;length[10,18]:使用Long;
                scale=0;length[5,9]:使用Integer;
                scale=0;length<5:使用Short;
         -->
        <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>


         <javaModelGenerator targetPackage="com.mooc.mall.pojo" targetProject="src/main/java">

             <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
             <property name="enableSubPackages" value="true"/>

             <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
             <property name="trimStrings" value="true"/>
         </javaModelGenerator>


         <!-- 生成SQL map的XML文件生成器,
            注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
                或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
            targetPackage/targetProject:同javaModelGenerator
         -->
         <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources">
             <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
             <property name="enableSubPackages" value="true"/>
         </sqlMapGenerator>


         <!-- 对于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
        -->
         <javaClientGenerator targetPackage="com.mooc.mall.dao" type="XMLMAPPER" targetProject="src/main/java">
             <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
             <property name="enableSubPackages" value="true"/>

         </javaClientGenerator>


         <table tableName="mall_order" domainObjectName="Order"/>
     </context>


</generatorConfiguration>

注:①context子元素是有顺序的,可参照官网文档

②可以把生成文件中的注释去掉

<commentGenerator>

<property name="suppressAllComments" value="true"/>

</commentGenerator>

也可以把所有ByExample相关的方法去掉

<table  ……   enableDeleteByExample="false" enableSelectByExample="false" 还有count update的byExample的方法>

③虽然pom文件中对重新生成的文件进行了覆盖设置,但是xml文件的内容还是会进行追加

需要在context中加入配置<plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>

generatorConfig.xml中的相关配置的详细解释可参考Mybatis Generator 配置详解_慕课手记http://www.imooc.com/article/21444

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值