首页 > 其他分享 >MyBatis-Pager: 一个轻量且优雅的 MyBatis 分页组件

MyBatis-Pager: 一个轻量且优雅的 MyBatis 分页组件

时间:2024-08-06 10:39:36浏览次数:10  
标签:name 轻量 pager mybatis MyBatis Pager 分页

Maven Apache 2
jdk-8 jdk-11 jdk-17

优点

  • 无侵入:仅需在mapper层接口中增加Pager<T>参数即可。
  • 零配置:无需额外增加配置项,能够自动推断数据库分页方言。

使用方法

SpringBoot2 项目引入maven依赖

<dependency>
    <groupId>cn.codest</groupId>
    <artifactId>mybatis-pager-spring-boot2-starter</artifactId>
    <version>${mybatis.pager.version}</version>
</dependency>

SpringBoot3 项目引入maven依赖

<dependency>
    <groupId>cn.codest</groupId>
    <artifactId>mybatis-pager-spring-boot3-starter</artifactId>
    <version>${mybatis.pager.version}</version>
</dependency>

Mapper XML中定义查询SQL语句

<select id="selectPage" resultType="cn.codest.mybatispagerspringboot2test.model.User">
    select
        id,
        name,
        mobile
    from t_user
    <if test="null != name and '' != name">
        where name like concat(#{name}, '%')
    </if>
</select>

定义Mapper接口,参数中需要包含Pager分页查询对象

public interface UserMapper {

    List<User> selectPage(@Param("name") String name, Pager<User> pager);

}

调用Mapper接口,查询分页数据

Pager<User> pager = Pager.of(1);
userMapper.selectPage(null, pager);
log.info("result = [{}]", pager);

带条件查询

Pager<User> pager = Pager.of(1);
userMapper.selectPage("郭", pager);
log.info("result = [{}]", pager);

支持的数据库

目前jDialects自带支持以下83种数据库方言

  • AccessDialect
  • Cache71Dialect
  • CobolDialect
  • CUBRIDDialect
  • DamengDialect
  • DataDirectOracle9Dialect
  • DB2390Dialect
  • DB2390V8Dialect
  • DB2400Dialect
  • DB297Dialect
  • DB2Dialect
  • DbfDialect
  • DerbyDialect
  • DerbyTenFiveDialect
  • DerbyTenSevenDialect
  • DerbyTenSixDialect
  • ExcelDialect
  • FirebirdDialect
  • FrontBaseDialect
  • GBaseDialect
  • H2Dialect
  • HANAColumnStoreDialect
  • HANARowStoreDialect
  • HSQLDialect
  • Informix10Dialect
  • InformixDialect
  • Ingres10Dialect
  • Ingres9Dialect
  • IngresDialect
  • InterbaseDialect
  • JDataStoreDialect
  • MariaDB102Dialect
  • MariaDB103Dialect
  • MariaDB10Dialect
  • MariaDB53Dialect
  • MariaDBDialect
  • MckoiDialect
  • MimerSQLDialect
  • MySQL55Dialect
  • MySQL57Dialect
  • MySQL57InnoDBDialect
  • MySQL5Dialect
  • MySQL5InnoDBDialect
  • MySQL8Dialect
  • MySQLDialect
  • MySQLInnoDBDialect
  • MySQLMyISAMDialect
  • Oracle10gDialect
  • Oracle12cDialect
  • Oracle8iDialect
  • Oracle9Dialect
  • Oracle9iDialect
  • OracleDialect
  • ParadoxDialect
  • PointbaseDialect
  • PostgresPlusDialect
  • PostgreSQL81Dialect
  • PostgreSQL82Dialect
  • PostgreSQL91Dialect
  • PostgreSQL92Dialect
  • PostgreSQL93Dialect
  • PostgreSQL94Dialect
  • PostgreSQL95Dialect
  • PostgreSQL9Dialect
  • PostgreSQLDialect
  • ProgressDialect
  • RDMSOS2200Dialect
  • SAPDBDialect
  • SQLiteDialect
  • SQLServer2005Dialect
  • SQLServer2008Dialect
  • SQLServer2012Dialect
  • SQLServerDialect
  • Sybase11Dialect
  • SybaseAnywhereDialect
  • SybaseASE157Dialect
  • SybaseASE15Dialect
  • SybaseDialect
  • Teradata14Dialect
  • TeradataDialect
  • TextDialect
  • TimesTenDialect
  • XMLDialect

标签:name,轻量,pager,mybatis,MyBatis,Pager,分页
From: https://www.cnblogs.com/changxy-codest/p/18344685

相关文章

  • 使用rewriteBatchedStatements属性优化Mybatis-Plus批量插入数据(转)
    原文:https://blog.csdn.net/mcband/article/details/131530297前言由于项目是使用MyBatis-Plus开发的,用起来也确实比较方便,尤其是service层封装好的一些通用的增删改查方法,省去了不少sql语句的书写,但是在开发过程中,我也发现MyBatis-Plus的saveBatch批量插入方法针对MySQL数据库可......
  • MyBatis 根据数据表反向生成 java 实体类等
    MyBatis根据数据表反向生成java实体类等  1、MyBatis根据已有的数据表生成对应的Java实体类的配置文件:mybatisReverseGeneratorConfig.xml此文件放到项目的根目录下 1<?xmlversion="1.0"encoding="UTF-8"?>2<!DOCTYPEgeneratorConfiguration......
  • MyBatis搭建和增删改查
    MyBatis是一个开源的持久层框架,用于处理数据库的增删改查操作。它能够将Java对象与数据库中的数据进行映射关系的配置,并自动生成对应的SQL语句,从而简化了数据库操作的编码工作。MyBatis的核心思想是将SQL语句与Java代码分离,通过XML或注解来配置SQL语句,使得SQL语句可以进行灵活......
  • Mybatis-Plus(0废话,全程高能)
    --------------------------------------------------------------------------------------------------------------------------------我知道你可能或多或少用过,都点进来了,就大概看一眼呗......
  • 后端MyBatis连接Mysql数据库时常见报错
     目录报错情况报错情况一:​编辑报错情况二:解决步骤一、解决命名问题1.mapper层的id是否和Dao层的方法名字相同2.检查namespace与Dao层的文件地址相同二、解决注解问题1.检查Controller层的注解是否正确和完整2.Dao层或者Mapper层的注解3.pojo层:实体类层Data注解(用......
  • Mybatis一级缓存与二级缓存
    一级缓存与二级缓存概述当mydatis需要关联查询时,会使一条sql语句附加n条关联查询语句,即1+n问题,为了解决这个问题mybatis提供了延迟加载和缓存机制,本节讲缓存机制。当不开启延迟加载时,1+n条sql语句同时发送至数据库,这时n+1条sql语句是在同一个会话当中,一级缓存自动生效,即相同......
  • MyBatis学习笔记第一天
    引言数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis支持定制化SQL、存储过程以及高级映射,可以在实体类和SQL语句之间建立映射关系,是一种半......
  • Spring Cloud微服务项目集成MyBatis
            在现代软件开发中,微服务架构已经成为一种流行的解决方案,它能够将应用程序拆分成多个小的、独立的服务。每个服务负责一个特定的业务功能,并可以独立部署和扩展。SpringCloud是一个提供各种工具和框架以支持微服务开发的开源框架,而MyBatis是一个流行的持久层......
  • MybatisPlus自带方法报错BindingException: Invalid bound statement (not found)
    问题描述: MybatisPlus自带方法如xxx.list()xxx.save()或则xxMapper.selectList()... 等方法无法使用报错:Invalidboundstatement(notfound) 但是自己定义的sql方法可以使用问题排查: 1、自定义方法可使用排除xml位置不正确,包扫描没扫到(target目录下已生成对应的mapper和xml......
  • mysql分区自动维护(SpringBoot+MybatisPlus)
    1.环境SpringBoot+MybatisPlus+MySQL2.简介通过定时器@Scheduled每日触发,查询当前库中所有分区表(这里以时间段进行分区)判断剩余分区是否小于自定义预留分区(无自定义预留分区则取默认分区配置),若小于预留分区时,自动创建分区至配置分区数判断已有分区是否大于自定义保留分......