GeneratorConfig.xml文件配置详解及IDEA中的使用,处女座小编整理,值得一看

目录

一、GeneratorConfig.xml配置文件:(解释见注释)

(一)、模板的使用方法:

(二)、对两个标签重点解释下:

二、配置pom.xml:

三、IDEA中的使用:

四、注意事项:


先附上官网链接:http://mybatis.org/generator/index.html

小编根据开发经验,将GeneratorConfig.xml 文件整理了一下(绝对处女座),格式整洁明了,注释清晰易懂,并且把IDEA使用的方法,和可能遇到的问题都一一罗列了下,希望可以真正的帮到你。

一、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>

    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包 -->
    <classPathEntry  location="D:\maven-warehouse\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
    <!-- <classPathEntry  location="D:\maven-warehouse\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/> -->

    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <!-- 实体类生成序列化属性-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <!-- 实体类重写HashCode()和equals()-->
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
        <!-- 实体类重写toString() -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

        <commentGenerator>
            <!-- 是否去除自动生成的注释 -->
            <property name="suppressAllComments" value="true"/>
            <!-- 生成注释是否带时间戳-->
            <property name="suppressDate" value="true"/>
            <!-- 生成的Java文件的编码格式 -->
            <property name="javaFileEncoding" value="utf-8"/>
            <!-- 格式化java代码-->
            <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
            <!-- 格式化XML代码-->
            <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
        </commentGenerator>

        <!-- 数据库连接驱动类,URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/dbName?useUnicode=true&amp;characterEncoding=UTF-8"
                        userId="root" password="root">
        </jdbcConnection>

        <!-- java类型处理器:处理DB中的类型到Java中的类型 -->
        <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
            <!-- 是否有效识别DB中的BigDecimal类型 -->
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>

        <!-- 生成Domain模型:包名(targetPackage)、位置(targetProject) -->
        <javaModelGenerator targetPackage="com.project.business.domain" targetProject="D:/workSpace/project/src/main/java">
            <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
            <property name="enableSubPackages" value="true"/>
            <!-- 设置是否在getter方法中,对String类型字段调用trim()方法-->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成xml映射文件:包名(targetPackage)、位置(targetProject) -->
        <sqlMapGenerator targetPackage="com.project.business.dao" targetProject="D:/workSpace/project/src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成DAO接口:包名(targetPackage)、位置(targetProject) -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.project.business.dao" targetProject="D:/workSpace/project/src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 要生成的表:tableName - 数据库中的表名或视图名,domainObjectName - 实体类名 -->
        <table tableName="tableName" domainObjectName="tableNameDO"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>

    </context>
</generatorConfiguration>

(一)模板的使用方法:

模板支持直接复制使用,前提是:一定要记得修改数据库驱动位置和jdbc.Driver信息。

  1. 数据库驱动位置项目加载的本地Maven库中mysql-connector-java-5.1.47.jar的存放位置;
  2. jdbc.Draver:项目使用的本地数据库地址,以及账号、密码;
  3. 每次只能对一张表进行操作,所以需要修改要生成的表明名,实体名;

(二)、对两个标签重点解释下:

1 . <plugin > 标签:决定生成的实体类是否包含 - 序列化属性,HashCode(),equals(),toString()方法。

使用该配置文件中生成的方法,因为使用StringBuilder类方法的缘故,其性能比IDEA自动生成的方法还要好。

        <!-- 实体类生成序列化属性-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <!-- 实体类重写HashCode()和equals()-->
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
        <!-- 实体类重写toString() -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

2.  <javaTypeResolver> 标签:决定DB中的类型到Java实体类中的类型

- false:默认都是BigDecimal,不做识别;

- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型,规则如下:

  • scale > 0  ||  length > 18:使用BigDecimal;
  • scale = 0 && length[10,18]:使用Long;
  • scale = 0 && length[5,9]:使用Integer;
  • scale = 0 && length < 5:使用Short;
        <!-- java类型处理器:处理DB中的类型到Java中的类型 -->
        <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
            <!-- 是否有效识别DB中的BigDecimal类型 -->
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>

 

二、配置pom.xml:

注意:<configurationFile> 标签中存放的,是 generatorConfig.xml 文件在项目中的绝对路径。

    <dependencies> 
        ......
       <!--mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
            <scope>runtime</scope>
        </dependency>
        ......
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
        </plugins>
        <finalName>projectName</finalName>
    </build>

 

三、IDEA中的使用:

使用IDEA中的maven插件直接快速生成,位置如下:(双击运行)

 

四、注意事项:

1. GeneratorConfig.xml 文件中加载的数据库驱动,要和pom.xml文件中mysql-connector-java的版本一致!!

如:留意我们上面的 GeneratorConfig.xml 文件中被注释掉的第8行,由于其加载的驱动版本为8.0.17,高于

pom.xml文件加载的版本5.1.47,导致插件运行报错,不可使用。

2.报异常: java.lang.RuntimeException: Cannot instantiate object of type org.mybatis.generator.plugins.ToStringPlugin

该问题的原因是,你的<artifactId>mybatis-generator-maven-plugin</artifactId>版本低或者不匹配,改成1.3.6就可以了,如下:

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

3. 如果版本没有问题,加载驱动的 <classPathEntry> 标签依然报红色,可能需要如下操作:

File --> Settings --> ① --> ② --> ③ --> 输入URL:http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd --> 效果见④

 

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java Punk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值