MyBatis快速开发(逆向工程)generatorConfig 和 generatorSqlmapCustom

很多开发人员 都会使用逆向工程生成对应的代码 ,从而减少编码的时间,以下介绍两种方法

 

当然你也可以直接使用 

spring-boot-api-project-seed-master  一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目~ 非常好用。(可以直接在github上查到)

 

 

一、generatorConfig 生成mapper映射文件的用法(大众用的最多的方式)

1.  pom引入 添加相应 plugin

            <!--配置mybatis代码生成工具-->
            <!--使用生成工具可以直接使用maven的命令提示符,生成语句是mvn mybatis-generator:generate ,
                一旦数据库进行了更改,都需使用这句代码重新生成bean、dao、mapper文件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <phase>deploy</phase>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>
                </dependencies>
            </plugin>

 

2. 在resources根目录中创建 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>
    <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置  -->
    <classPathEntry location="D:\apache-maven-3.6.1\pero\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar" />

    <!-- 一个数据库一个context -->
    <!--defaultModelType="flat" 大数据字段,不分表 -->
    <context id="MysqlTables" targetRuntime="MyBatis3" defaultModelType="flat">
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="javaFileEncoding" value="utf-8"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>

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

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

        <!-- jdbc连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/company_frame?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=true&amp;serverTimezone=GMT%2B8" userId="root"
                        password="ark531200"/>
        <!-- 类型转换 -->
        <javaTypeResolver>
            <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 生成实体类地址 -->
        <javaModelGenerator targetPackage="com.example.demo_002.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成mapxml文件 -->
        <sqlMapGenerator targetPackage="mybatis/mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- 生成mapxml对应client,也就是接口dao -->
        <javaClientGenerator targetPackage="com.example.demo_002.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        generatorConfig  和  generatorSqlmapCustom

        <table tableName="sys_user" domainObjectName="SysUser"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="true">
            <columnOverride column="sex" javaType="java.lang.Integer"/>
            <columnOverride column="status" javaType="java.lang.Integer"/>
            <columnOverride column="create_where" javaType="java.lang.Integer"/>
            <columnOverride column="deleted" javaType="java.lang.Integer"/>
        </table>
        <table tableName="menu" domainObjectName="Menu"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="true">
        </table>

    </context>
</generatorConfiguration>

注意配置文件中 需要更改的几个地方: 

  • 数据库的JDBC驱动,换成你自己的驱动位置
  • Mysql驱动包 版本问题不要太高 否则生成的接口 不全 (本案例中的本地 mysql驱动包的版本是 5.1.34)
  • 设置对应的生成文件的路径 也就是 包名
  • table标签表示需要生成的 表

 

设置好后开始生成:如下图操作

 

完成!!!!

 

一、generatorSqlmapCustom 生成mapper映射文件的用法(本人更喜欢这种方式)

这种方式 相对于 第一种来说 撸代码特爽,对每一张表几乎不需要手动添加新的sql语句 完全通过方法的形式调用 和 Hibernate相似(包括了 sql 语句 in  以及 sql语句的逻辑判断都有了)

把链接中地址 下载下来链接:  https://pan.baidu.com/s/1afmme4XUkfwgpU2pwXQM9A  提取码:cc5p

 

修改里面的 generatorConfig.xml配置文件 

里面都有注释 这就不用说了(注释特别全,做开发的都看的懂)

将生成好的文件 复制到 自己的项目中 即可

 

 

在server实现类中 如何使用

这种方式 还是 很不错的完全 可以 开发不写sql语句,多看看 他生成的实体类对应的Example类 里面提供了 一系列的方法。

由于开发中 多表查询 几乎 不多   本人 最多也就连两张表查 ,(如果项目中 有涉及到 三张表查询的 建议优化 分开查)

 

搞定!!

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ark方舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值