使用Maven插件(plugin)MyBatis Generator逆向工程

内容来自官网:http://www.mybatis.org/generator/index.html

generatorConfig.xml 模板(参考:http://www.mybatis.org/generator/configreference/xmlconfig.html)

<?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>元素用于将类路径位置添加到MyBatis Generator(MBG)运行的类路径中。通常用于加载数据库驱动 -->
    <classPathEntry location="...."/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--实体类实现实例化接口 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <!--实体生成toString() -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
        <!--这个插件将方法添加到Example类(实际上是Criteria内部类)以支持不区分大小写的LIKE搜索 -->
        <plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin"/>
        <!--生成hashCode和equals方法 -->
        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>
        <!--给每个Mapper接口添加@Mapper注解 -->
        <!--<plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin"/> -->
        <!--开启分页,接受org.apache.ibatis.session.RowBounds参数 -->
        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"/>
        <!-- 设置连接数据库参数 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306" userId="root" password="root">
        </jdbcConnection>
        <!-- <javaTypeResolver>元素用于定义Java类型解析器的属性。 Java Type Resolver用于根据数据库列信息计算Java类型。
            如果可能的话,默认的Java Type Resolver尝试通过替换Integral类型来使JDBC DECIMAL和NUMERIC类型更易于使用(Long,Integer,Short等)。如果此行为不受欢迎,请将属性“forceBigDecimals”设置为“true”。
            如果您需要与默认值不同的行为,您也可以替换您自己的实现。 该元素是<context>元素的可选子元素。 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 配置生成实体类(pojo,bean...)的位置,targetPackage:包名;targetProject:目标路径 -->
        <javaModelGenerator
                targetPackage="cn.liangqinghai.pojo" targetProject="src/main/java">
            <!-- 是否生成带参构造器 -->
            <property name="constructorBased" value="false"/>
            <!-- 是否根据schema生成子包(有点...):参考官网 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 该属性用于选择MyBatis Generator是否会生成不可变的模型类 - 这意味着类不会有“setter”方法,构造函数将接受类中每个字段的值。
                如果为true,则强制使用参数化构造函数构建模型类,而不考虑“constructorBased”属性的值。 -->
            <property name="immutable" value="false"/>
            <!-- 指定超类 -->
            <property name="rootClass" value="java.lang.Object"/>
            <!-- 去除空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 配置Mapper配置xml位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <!-- 与javaModelGenerator保持一致 -->
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 指定Mapper接口位置,type:指定类型(ANNOTATEDMAPPER:注解【sqlMapGenerator配置不生效】,XMLMAPPER:xml配置;MIXEDMAPPER:注解和xml混合【条件查询交给xml文件,普通增删改查交给注解】) -->
        <javaClientGenerator type="XMLMAPPER"  targetPackage="cn.lianqinghai.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 配置数据库对应的表 -->
        <!-- tableName:表名;domainObjectName:指定类名 -->
        <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer">
            <!-- 【前提:命名带下划线_】是否使用驼峰命名,false代表使用,ture代表直接使用数据库字段名 -->
            <property name="useActualColumnNames" value="true"/>
            <!-- insert主键返回 -->
            <generatedKey column="ID" sqlStatement="MySql" identity="true"/>
        </table>

    </context>
</generatorConfiguration>

 

pom.xml
<!-- mybatis generator 自动生成代码插件 -->
            <!--命令:mybatis-generator:generate-->
            <!--详情参考:http://www.mybatis.org/generator/running/runningWithMaven.html-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!--配置路径-->
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <!--配置中指定的类路径存在对应的Mapper或者pojo将覆盖-->
                    <overwrite>true</overwrite>
                    <!--显示日志-->
                    <verbose>true</verbose>
                </configuration>
                <!--设置插件数据库驱动依赖-->
                <dependencies>

                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.46</version>
                    </dependency>

                </dependencies>
            </plugin>

插件中指定了数据库驱动依赖,generatorConfig.xml配置文件中的classPathEntry标签可以删掉

构建命令:

  • mybatis-generator:generate

 

posted @ 2018-05-10 16:49  黑曼巴LGLG  阅读(674)  评论(0编辑  收藏  举报