MybatisGenerter插件

172 阅读1分钟

这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战

MybatisGenerter插件可以快速自动生成相关数据操作文件。 首先需要配置config.properties和generatorConfig.xml这两个文件。再运行一下MybatisGenerter插件,即可自动生成对应的DAO、DO和XML文件。

当然也可以手动写这三个文件,就是比较麻烦,而且会有遗漏,不过手动写也是考验代码功底的技术活。

ps:这里有一个默认bug,多次执行会导致生成的xml文件产生重复代码,并且会覆盖原来的文件,使用后要注意把generatorConfig.xml中的表名清除或者注释掉,防止重复代码产生以及覆盖原文件的问题产生。

以下是generatorConfig.xml文件的内容。文件最好和其他常规配置文件放在一个目录下,即resources目录。


<?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>
    <context id="default" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="javaFileEncoding" value="UTF-8"/>
        <property name="mergeable" value="true"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
        </plugin>

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

        <!--jdbc的数据库连接 ,根据你的实际数据库连接信息填写-->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="URL"
                userId="username"
                password="password">
        </jdbcConnection>
        <javaModelGenerator targetPackage="com.test.service.dal.entity" targetProject="src/main/java">
            <!-- 是否对model添加 构造函数 -->
            <property name="constructorBased" value="false"/>

            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
            <property name="enableSubPackages" value="false"/>

            <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>

            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
            <property name="trimStrings" value="false"/>
        </javaModelGenerator>

        <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>


        <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
                type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
        <javaClientGenerator targetPackage="com.test.service.dal.mapper" targetProject="src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--注意不要重复生成xml-->
        <!--table tableName="test_school"/-->
        <!--table tableName="test_classroom"/-->
        <table tableName="test_user"/>
    </context>

</generatorConfiguration>

最后运行插件,生成对应的文件。

image.png

顺利的话就能看到三个文件啦。