Bootstrap

MyBatis Generator代码生成器

1、MyBatis Generator代码生成

1、概述

MyBatis Generator 作为一个基于 MyBatis 的独立工具,它可以通过简单的配置去帮我们生成数据表所对应的 PO、DAO、XML 等文件,减去我们手动去生成这些文件的时间,有效提高开发效率

2、环境集成

使用idea打开项目:mybatis-gen

然后修改代码生成的核心配置文件:mybatis-generator.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>
    <!--导入mysql的驱动-->
    <classPathEntry
            location="D:\respository_zzyl\mysql\mysql-connector-java\8.0.19/mysql-connector-java-8.0.19.jar"/>

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

        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <!-- 批量插入插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin"/>
        <!-- 去掉生成出来的代码的注解 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!--jdbc的数据库连接-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://192.168.200.146:3306/zhyl-auth"
                        userId="root"
                        password="heima123"/>

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

        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="com.zzyl.entity"
                            targetProject="src/main/java">
            <!-- 是否允许子包
            <property name="enableSubPackages" value="false"/>-->
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

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

        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 XMLMAPPER:生成XML方式,ANNOTATEDMAPPER:生成注解方式-->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.zzyl.mapper" targetProject="src/main/java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名
            <property name="enableSubPackages" value="false"/>-->
        </javaClientGenerator>
        <table tableName="device"
               domainObjectName="Device" >
            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
            <columnOverride column="create_time" javaType="java.time.LocalDateTime"/>
            <columnOverride column="update_time" javaType="java.time.LocalDateTime"/>
        </table>
    </context>
</generatorConfiguration>
  • 配置mysql的驱动位置,找到maven本地仓库中的mysql驱动

  • 配置数据库链接

  • 设置实体类、mapper、mapper映射文件的目录

  • table标签可以设置对应数据库中的表,可配置多个

3、代码生成

目前的集成方式使用的maven插件来完成的,如果以上配置都已经完成了,可以在maven的插件中启动代码生成

注意:生成后的mapper代码,内容较多,可以根据自己的需要留下必要的代码内容

;