IDEA插件mybatis-generator 反向生成dao层接口和实体类 用法

博客介绍了MyBatis反向生成插件的使用方法。先下载插件,接着在pom文件中配置maven插件,再创建generatorConfig.xml配置文件,最后点击maven插件启动生成。该插件可在数据表多的时候生成映射文件和resultMap,避免手写字段不对应问题。

1. 下载插件

File–>Settings–>搜索Plugins–>搜索mybatis-generator
在这里插入图片描述

2. 在pom文件中配置maven插件

		<plugins>
			<plugin>
                <groupId>org.mybatis.generator</groupId>        <artifactId>mybatis-generator-maven-plugin</artifactId>
                <configuration>
                    <!-- mybatis-generator的配置文件,根据情况调整位置 -->
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <!--默认是true-->
                <!--<filtering>true</filtering>-->
            </resource>
        </resources>

注:configurationFile配置中指向的是generatorConfig的xml配置文件

3. 创建 generatorConfig.xml配置

我指向的是resources文件夹,所以我在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>
    <!--导入属性配置-->
    <!--   <properties resource="datasource.properties"></properties>-->

    <!-- 指定数据库驱动的jdbc驱动jar包的位置 -->
    <classPathEntry location="D:/repository/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar" />

    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">

        <!--optional,旨在创建class时,对注释进行控制-->
        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!--jdbc的数据库连接-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost/db_pockectstate?characterEncoding=utf-8"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
            <!-- 不是 double 和 long 类型 -->
            <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="com.pockectstate.entity.msg"
                            targetProject=".\src\main\java">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true" />
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true" />
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false" />
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置
        生成的mybatis映射文件 -->
        <sqlMapGenerator targetPackage="mappers"
                         targetProject=".\src\main\resources">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage 和 targetProject:生成的 interface(接口) 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.pockectstate.entity.dao" targetProject=".\src\main\java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
                <!--  tableName:对应的数据库表名 
              domainObjectName:对应生成的实例的类名
              如果数据库中有多个数据库表,写多个table标签
                -->
        <table tableName="t_msglog" domainObjectName="MsgLog"
               enableCountByExample="false" 	enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"
        >
        </table>


    </context>
</generatorConfiguration>

4. 点击maven 的插件启动,开始生成

可以根据自己的需要在generatorConfig.xml中修改相应的配置,这个插件只能生成一些简单的增删改查.一般在数据表多的时候用来生成映射文件和resultMap , 避免出现手写报字段不对应的情况.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值