springboot中通用mapper结合mybatis generator的使用

通用mapper是为了方便开发人员对单表进行crud操作而产生的一套通用方法。

通用mapper只支持单表操作,可以根据自己的需求开发自己的通用方法。

Mybatis Generator是一个自动生成代码工具,可以在开发中极大的提高我们的开发效率,省去了我们写实体类,mapper接口和xml的时间。有了这个插件,我们可以只关心数据库表的设计。

下面介绍一下如何在springboot项目中使用通用mapper和mbg。

1.首先,我们需要在项目中添加mybatis和通用mapper的maven依赖,以及配置mbg启动方式为maven启动方式。

WechatIMG2.jpeg
WechatIMG.jpeg

添加mybatis和通用mapper的maven依赖:

      <!--mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!--mapper-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

配置mbg为maven启动方式

<!--配置mbg-->
<!--此处应注意mybatis-generator-maven-plugin的版本-->
<!--较低版本的依赖会导致xml中包含@mbg.generator注释的代码不会被覆盖,造成增量叠加问题-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
  <!--generator配置文件所在位置-->   
                 <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>3.4.0</version>
                    </dependency>
                </dependencies>
            </plugin>

2.配置mbg的配置文件,制定代码生成规则
各配置参数详解参照http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.md 在此不作过多解释

WechatIMG3.jpeg
<?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="application.yml"/>
    <!-- 必须 指定生成一组对象的环境 -->
    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <!--分隔符 -->
        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!-- 通用mapper插件 -->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
              <!-- 此处的 MyMapper注意一定不能被扫描到-->
            <property name="mappers" value="com.demo.utils.MyMapper"/>
        </plugin>
        <!-- 注释 规则-->
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>


        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.demo.domain" targetProject="src/main/java"/>
        <sqlMapGenerator targetPackage="sqlmapper" targetProject="src/main/resources"/>
        <javaClientGenerator targetPackage="com.demo.mapper" targetProject="src/main/java"
                             type="XMLMAPPER"/>
        <table tableName="%">
            <!--mysql 配置-->
            <generatedKey column="id" sqlStatement="Mysql" />
            <!--oracle 配置-->
            <!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>-->
        </table>
    </context>
</generatorConfiguration>

3.生成一组对象,测试通用mapper的方法
通用mapper接口请参照 https://mapperhelper.github.io/all/

使用maven生成对象

扫描mapper接口所在包

WechatIMG5.jpeg

测试通用mapper方法

WechatIMG6.jpeg

使用通用mapper极大的减少了我们写简单查询方法必要性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,622评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 行程:民丰--且末 关键词: 沙尘暴下的“北京” 今天就是赶路的一天。民丰到且末县,大部分都在穿越沙漠,灰土狼烟,...
    苏菲的流水账阅读 198评论 0 1
  • 五月的梅雨潮弄了木质拖鞋 抬脚的起承转合里糯起了江南雨 看屋檐装饰青色的天空 青苔悄悄等待时机生长 所有阴暗中的生...
    Drunkey阅读 550评论 0 2