MyBatis通用Mapper和PageHelper的过程详解

如果项目中使用到了MyBatis框架,那么使用通用Mapper和PageHelper分页插件将极大的简化我们的操作。通用Mapper可以简化对单表的CRUD操作,PageHelper分页插件可以帮我们自动拼接分页SQL,并且可以使用MyBatis Geneator来自动生成实体类,Mapper接口和Mapper xml代码,非常的方便。插件地址及作者链接https://gitee.com/free

引入依赖

这里使用Spring Boot来构建,可参考Spring-Boot中使用Mybatis.html搭建一个Spring boot + MyBatis的框架,然后在pom中引入:

<!-- mybatis -->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.3.1</version>
</dependency>
<!-- 通用mapper -->
<dependency>
  <groupId>tk.mybatis</groupId>
  <artifactId>mapper-spring-boot-starter</artifactId>
  <version>1.1.5</version>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>1.2.3</version>
</dependency>

接着在pom中配置MyBatis Geneator:

<build>
  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.5</version>
      <dependencies>
        <dependency>
          <!-- 数据库连接驱动 -->
          <groupId>com.oracle</groupId>
          <artifactId>ojdbc6</artifactId>
          <version>6.0</version>
        </dependency>
        <dependency>
          <groupId>tk.mybatis</groupId>
          <artifactId>mapper</artifactId>
          <version>3.4.0</version>
        </dependency>
      </dependencies>
      <executions>
        <execution>
          <id>Generate MyBatis Artifacts</id>
          <phase>package</phase>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <!--允许移动生成的文件 -->
        <verbose>true</verbose>
        <!-- 是否覆盖 -->
        <overwrite>true</overwrite>
        <!-- 自动生成的配置 -->
        <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile>
      </configuration>
    </plugin>
  </plugins>
</build>

src/main/resources/mybatis-generator.xml为生成器的配置,下文会介绍到。

配置插件
在Spring Boot配置文件application.yml中配置MyBatis:

mybatis:
 # type-aliases扫描路径
 type-aliases-package: com.springboot.bean
 # mapper xml实现扫描路径
 mapper-locations: classpath:mapper/*.xml
 property:
  order: BEFORE

接下来开始配置插件。

配置通用Mapper
在Spring Boot配置文件application.yml中配置通用Mapper:

#mappers 多个接口时逗号隔开
mapper:
 mappers: com.springboot.config.MyMapper
 not-empty: false
 identity: oracle

关于参数的说明,参考https://gitee.com/free/Mapper/blob/master/wiki/mapper3/2.Integration.md中的可配参数介绍。

除此之外,我们需要定义一个MyMapper接口:

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {

}

值得注意的是,该接口不能被扫描到,应该和自己定义的Mapper分开。自己定义的Mapper都需要继承这个接口。

配置PageHelper
在Spring Boot配置文件application.yml中配置通用配置PageHelper:

#pagehelper
pagehelper:
 helperDialect: oracle
 reasonable: true
 supportMethodsArguments: true
 params: count=countSql

参数相关说明参考https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md中的分页插件参数介绍。

配置Geneator*
在路径src/main/resources/下新建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>
  <context id="oracle" targetRuntime="MyBatis3Simple" defaultModelType="flat">

    <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
      <!-- 该配置会使生产的Mapper自动继承MyMapper -->
      <property name="mappers" value="com.springboot.config.MyMapper" />
      <!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
      <property name="caseSensitive" value="false"/>
    </plugin>

    <!-- 阻止生成自动注释 -->
    <commentGenerator>
      <property name="javaFileEncoding" value="UTF-8"/>
      <property name="suppressDate" value="true"/>
      <property name="suppressAllComments" value="true"/>
    </commentGenerator>

    <!-- 数据库链接地址账号密码 -->
    <jdbcConnection
      driverClass="oracle.jdbc.driver.OracleDriver"
      connectionURL="jdbc:oracle:thin:@localhost:1521:ORCL"
      userId="scott"
      password="6742530">
    </jdbcConnection>

    <javaTypeResolver>
      <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>

    <!-- 生成Model类存放位置 -->
    <javaModelGenerator targetPackage="com.springboot.bean" targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>

    <!-- 生成映射文件存放位置 -->
    <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
      <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>

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

    <!-- 配置需要生成的表 -->
    <table tableName="T_USER" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
      <generatedKey column="id" sqlStatement="oralce" identity="true"/>
    </table>
  </context>
</generatorConfiguration>

转载:https://mrbird.cc/MyBatis%20common%20Mapper%20PageHelper.html

到此这篇关于MyBatis通用Mapper和PageHelper的文章就介绍到这了,更多相关MyBatis通用Mapper和PageHelper内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringMvc+Mybatis+Pagehelper分页详解

    最近公司需要做一个告警页面的功能,需要分页,查了很多资料发现PageHelper比较合适 故写一篇从零开始的PageHelper使用的教程,也记录下忙活一天的东西 1.首先需要在项目中添加PageHelper的依赖,这里我用的Maven添加 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>

  • SpringBoot集成MyBatis的分页插件PageHelper实例代码

    昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和SpringBoot的集成,它的使用也非常简单,开发更为高效.因为PageHelper插件是属于MyBatis框架的,所以相信很多哥们儿都已经用烂了,下面带着各位吃一下回头草. 首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通

  • 详解Mybatis通用Mapper介绍与使用

    使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL.而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改.这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障.这时,通用Mapper便应运而生-- 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件.开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删

  • Mybatis MapperScannerConfigurer自动扫描Mapper接口生成代理注入到Spring的方法

    前言 Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring Mybatis在与Spring集成的时候可以配置 MapperFactoryBean来生成Mapper接口的代理. 例如: <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mappe

  • Mybatis分页插件PageHelper的使用详解

    1.说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页. 2.使用方法 第一步:在Mybatis配置xml中配置拦截器插件: <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pageh

  • Mybatis分页插件PageHelper的配置和简单使用方法(推荐)

    前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分页 一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作. 特点是:简单,很适合小规模的web平台:当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长. 后端分页 在ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当页的数据返回

  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&q

  • MyBatis通用Mapper和PageHelper的过程详解

    如果项目中使用到了MyBatis框架,那么使用通用Mapper和PageHelper分页插件将极大的简化我们的操作.通用Mapper可以简化对单表的CRUD操作,PageHelper分页插件可以帮我们自动拼接分页SQL,并且可以使用MyBatis Geneator来自动生成实体类,Mapper接口和Mapper xml代码,非常的方便.插件地址及作者链接https://gitee.com/free . 引入依赖 这里使用Spring Boot来构建,可参考Spring-Boot中使用Mybati

  • mybatis使用pagehelper插件过程详解

    这篇文章主要介绍了mybatis使用pagehelper插件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.添加插件的依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.0.4</version> <

  • springboot整合通用Mapper简化单表操作详解

    前言 数据库访问是web应用必不可少的部分.现今最常用的数据库ORM框架有Hibernate与Mybatis,Hibernate貌似在传统IT企业用的较多,而Mybatis则在互联网企业应用较多.通用Mapper是一个基于Mybatis,将单表的增删改查通过通用方法实现,来减少SQL编写的开源框架,且也有对应开源的mapper-spring-boot-starter提供.我们在此基础上加了一些定制化的内容,以便达到更大程度的复用. 框架源码地址 Demo源码地址 在开源mapper-spring

  • MyBatis通用Mapper中的通用example(排序)详解

    目录 MyBatis通用Mapper的通用example(排序) 接口 实现类 MyBatis通用Mapper技巧 一.排序 二.处理oracle的null异常 三.mapper的selectOne返回值可能是null 四.看代码 MyBatis通用Mapper的通用example(排序) Example example = new Example(TerminalType.class); //注意:排序使用的是列名 example.setOrderByClause("TT_PROVIDERID

  • 浅谈MyBatis通用Mapper实现原理

    本文会先介绍通用 Mapper 的简单原理,然后使用最简单的代码来实现这个过程. 基本原理 通用 Mapper 提供了一些通用的方法,这些通用方法是以接口的形式提供的,例如. public interface SelectMapper<T> { /** * 根据实体中的属性值进行查询,查询条件使用等号 */ @SelectProvider(type = BaseSelectProvider.class, method = "dynamicSQL") List<T>

  • MyBatis通用Mapper实现原理及相关内容

    MyBatis通用Mapper实现原理 本文会先介绍通用 Mapper 的简单原理,然后使用最简单的代码来实现这个过程. 基本原理 通用 Mapper 提供了一些通用的方法,这些通用方法是以接口的形式提供的,例如. public interface SelectMapper<T> { /** * 根据实体中的属性值进行查询,查询条件使用等号 */ @SelectProvider(type = BaseSelectProvider.class, method = "dynamicSQL

  • mybatis分页绝对路径写法过程详解

    这篇文章主要介绍了mybatis分页绝对路径写法过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 共四步, 1.下载jar包,maven的坐标为 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.0.4</version&

  • Springboot 整合通用mapper和pagehelper展示分页数据的问题(附github源码)

    简介 springboot 设计目的就是为了加速开发,减少xml的配置.如果你不想写配置文件只需要在配置文件添加相对应的配置就能快速的启动的程序. 通用mapp 通用mapper只支持对单表的操作,对单表的增删改查,无需在mapper.xml写对应的sql语句,只需要我们调用相应的接口即可. pagehelp pagehelper主要是在对查询的数据进行一个分页查询. 首先在maven项目,在pom.xml中引入mapper和pagehelper的依赖 <!-- pagehelp --> &l

  • Springboot集成mybatis与jsp过程详解

    目录 什么是Spring Boot? springboot特点 springboot快速搭建项目 新建项目springboot_mybatis_jsp 项目配置 配置项目目录 配置工作目录(working directory) 配置pom.xml 配置application.properties 编写代码 建表t_user 编写User.java 编写UserMapper.xml 编写UserService.java.UserServiceImpl.java 编写Controller 什么是Sp

随机推荐