mybatis-generator配置

Posted 鱼翔空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-generator配置相关的知识,希望对你有一定的参考价值。

这几天代码走查,发现generator配置文件一直在变动。classPathEntry

  <classPathEntry location="D:/Java/apache-maven-3.5.2/mysql-connector-java-5.1.46.jar"/>

由于每个人的环境的差异性,导致共同开发时,每个人都要根据自己的环境修改实际路径。

这多麻烦,这么hot的开源插件,一定有解决方案。

查看了下官网,有短的说明

http://mybatis.org/generator/running/runningWithMaven.html

根据说明配置下。

generatorConfig.xml

<?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>
    <!-- 引入配置文件 mybatis-generator:generate-->
    <properties resource="generator/generator.properties"/>

    <!--classPathEntry:数据库的JDBC驱动,直接在plugin中引入依赖 -->
    <!-- targetRuntime 包含类型:MyBatis3、MyBatis3DynamicSql-->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
        一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
        <property name="autoDelimitKeywords" value="true"/>
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="utf-8"/>
        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号;-->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="targetJava8" value="true"/>

        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>

        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!--        &lt;!&ndash; include the plugin &ndash;&gt;-->
        <!--        <plugin type="com.softwareloop.mybatis.generator.plugins.LombokPlugin">-->
        <!--            &lt;!&ndash; enable annotations &ndash;&gt;-->
        <!--            <property name="builder" value="false"/>-->
        <!--            &lt;!&ndash; annotation's option(boolean) &ndash;&gt;-->
        <!--            <property name="builder.fluent" value="false"/>-->
        <!--            &lt;!&ndash; annotation's option(String) &ndash;&gt;-->
        <!--            <property name="builder.builderMethodName" value="myBuilder"/>-->

        <!--            <property name="accessors" value="true"/>-->
        <!--            &lt;!&ndash; annotation's option(array of String) &ndash;&gt;-->
        <!--            <property name="accessors.prefix" value="m_, _"/>-->

        <!--            &lt;!&ndash; disable annotations &ndash;&gt;-->
        <!--            <property name="allArgsConstructor" value="false"/>-->
        <!--        </plugin>-->

        <!-- 注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
            <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳-->
        </commentGenerator>

        <!-- jdbc连接 -->
        <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.user}"
                        password="${jdbc.password}"/>
        <!-- 类型转换 -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 生成实体类地址-->
        <javaModelGenerator targetPackage="${package.model}" targetProject="${path.java}">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成mapxml文件 -->
        <sqlMapGenerator targetPackage="${package.xml}" targetProject="${path.resource}">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- 生成mapxml对应client,也就是接口dao
        MyBatis3DynamicSql和MyBatis3Kotlin 时不用管
        MyBatis3时type:
            XMLMAPPER xml 和mapper
            ANNOTATEDMAPPER  注解式mapper
            MIXEDMAPPER  混合式
        MyBatis3Simple
            ANNOTATEDMAPPER  注解式mapper
            XMLMAPPER   xml 和mapper
        -->
        <javaClientGenerator targetPackage="${package.mapper}" targetProject="${path.java}" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!--生成全部表-->
        <!--    <table tableName="%" />-->

        <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->
        <table tableName="t_account" domainObjectName="Account"
               enableCountByExample="false"
               enableSelectByPrimaryKey="true"
               enableUpdateByPrimaryKey="true"
               enableDeleteByPrimaryKey="true"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false">
            <!-- 如果数据库字段是驼峰格式,就打开下面的配置-->
<!--            <property name="useActualColumnNames" value="true"/>-->
            <!-- 数据库表主键 -->
            <!--<generatedKey column="id" sqlStatement="Mysql" identity="true" />-->
        </table>


    </context>
</generatorConfiguration>

generator.properties

path.java=src/main/java
path.resource=src/main/resources
package.model=com.yxkong.service.entity.user
package.xml = mybatis/mapper/user
package.mapper= com.yxkong.service.mapper.user
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/gray_user?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
jdbc.user=root
jdbc.password=123456

pom.xml文件

重点在这里哦。

    <build>
        <plugins>
          .......
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <configuration>
                    <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.20</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

完美,又为公司的知识库丰富了些内容。

公众号图片

以上是关于mybatis-generator配置的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 生成代码配置 mybatis-generator:generate 的使用详解

mybatis-generator自动生成代码工具

mybatis-generator自动生成代码插件详解

mybatis-generator 生成代码字段名默认按驼峰命名,可否设置

如何在idea中使用Mybatis-generator插件快速生成代码

mybatis-generator配置