mybatis-paginator分页工具的使用简述
1、引入依赖包
<dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId><version>1.2.17</version> </dependency> |
2、Mybatis配置文件添加分页插件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configurationPUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN""http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuration><settings><setting name="cacheEnabled" value="false" /><setting name="lazyLoadingEnabled" value="false" /><setting name="aggressiveLazyLoading" value="false"/></settings><plugins><plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor"><property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/></plugin></plugins> </configuration> |
3、applicationContext.xml文件中增加属性配置
<bean class="com.vip.vpal.cpc.dataSource.ReplicationDataSource" id="oDataSource"><property name="targetDataSources"><map key-type="java.lang.String"><entry value-ref="oDataSourceMaster" key="master"></entry><entry value-ref="oDataSourceSlave" key="slave"></entry></map></property><property name="defaultTargetDataSource" ref="oDataSourceMaster"></property> </bean><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="oDataSource"/> </bean><bean id="myBatisSqlSessionFactoryO" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="oDataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"></property><property name="mapperLocations" value="classpath*:mapper/*Mapper.xml"/> </bean> |
4、创建一个查询,mybatis映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.test.repository.TestRepository"><select id="selectdUserListPage" resultType="java.lang.String">SELECT p.idFROM test1 bjoin test2 pon b.usr_no = p.usr_nowhere p.transfer_sts = '2'and b.tm_smp >= #{tmSmpStart}and b.tm_smp <= #{tmSmpEnd}and b.CUR_AC_BAL > 0</select> </mapper> |
5、创建一个接口
package com.test.repository;import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import org.apache.ibatis.annotations.Param;import java.util.List;public interface TestRepository {List<String> selectdUserListPage(@Param("tmSmpStart") String tmSmpStart, @Param("tmSmpEnd") String tmSmpEnd,@Param("pageBounds") PageBounds pageBounds);} |
6、具体的调用和使用
package com.test;import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.test.repository; import org.joda.time.DateTime; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; import org.springframework.test.context.transaction.TransactionalTestExecutionListener;import java.util.ArrayList; import java.util.List; @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"classpath:META-INF/service-conf/service.xml"})@TestExecutionListeners(value = {DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class})@FixMethodOrder(MethodSorters.NAME_ASCENDING) public class BalTransferServiceTest{private static Logger log = LoggerFactory.getLogger(BalTransferServiceTest.class);@Autowiredprivate TestRepository testRepository;@Testpublic void testSelectPage() {List<String> userIdList = new ArrayList<>();String tmSmpStart = DateTime.now().minusDays(Integer.valueOf(30)).toString("yyyyMMddHHmmss");String tmSmpEnd = DateTime.now().toString("yyyyMMddHHmmss");int page = 1;int pageSize = 20;PageBounds pageBounds = new PageBounds(page, pageSize, Boolean.TRUE);List<String> tempList = testRepository.selectdVipUserListPage(tmSmpStart, tmSmpEnd, pageBounds);PageList pageList = (PageList) tempList;userIdList.addAll(tempList);log.info("tempList={},Page={},totalCount={},TotalPages={}", tempList.size(), pageList.getPaginator().getPage(), pageList.getPaginator().getTotalCount(),pageList.getPaginator().getTotalPages());Integer totalPages = pageList.getPaginator().getTotalPages();//如果还有大于1页的数据,需要继续翻页进行查询,这个时候可以控制不查询totalcount的查询for (int i = 2; i <= totalPages; i++) {pageBounds = new PageBounds(i, pageSize, Boolean.FALSE);tempList = testRepository.selectdUserListPage(tmSmpStart, tmSmpEnd, pageBounds);userIdList.addAll(tempList);}log.info("userIdList={}", userIdList.size());for (String temp : userIdList) {log.info("id={}", temp);}}} |
7、使用PageBounds这个对象来控制结果的输出,常用的使用方式一般都可以通过构造函数来配置。
//默认构造函数不提供分页,返回ArrayList new PageBounds();//取TOPN操作,返回ArrayList new PageBounds(int limit);//只排序不分页,返回ArrayList new PageBounds(Order... order);//默认分页,返回PageList new PageBounds(int page, int limit);//分页加排序,返回PageList new PageBounds(int page, int limit, Order... order);//使用containsTotalCount来决定查不查询totalCount,即返回ArrayList还是PageList new PageBounds(int page, int limit, List<Order> orders, boolean containsTotalCount); |
mybatis-paginator分页工具的使用简述相关推荐
- mybatis java8_Java 8 开发的 Mybatis 注解代码生成工具
MybatisAnnotationTools MybatisAnnotationTools 是基于 Java8 开发的一款可以用于自动化生成 MyBatis 注解类的工具,支持配置数据源.类路径,表名 ...
- 关于mybatis的分页实现
一.为什么要分页 数据特别多的时候,单次请求返回大量的数据接口会非常慢. 对于数据量特别大的查询,我们都会采用分页查询 二.怎么设计分页 每页有多少个 当前是在第几页 数据的总数 数据列表 基于这些属 ...
- mybatis常用分页插件,快速分页处理
在未分享整个查询分页的执行代码之前,先了解一下执行流程. 1.总体上是利用mybatis的插件拦截器,在sql执行之前拦截,为查询语句加上limit X X 2.用一个Page对象,贯穿整个执行流程, ...
- mybatis实现分页的几种方式
本文目录 借助数组进行分页 借助Sql语句进行分页 拦截器分页 RowBounds实现分页 借助数组进行分页 原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通 ...
- KKB:mybatis的分页:pagehelper
mybatis 的第一种分页方式: 物理分页(不用该方法) 将数据全部查询出来放到内存中,然后进行分页显示 使用offset 和 limit 确定每页的数据大小,不需要每次从数据库中查询,多消耗了内存 ...
- Bootstrap Paginator分页插件+ajax
Bootstrap Paginator分页插件下载地址: DownloadVisit Project in GitHub Bootstrap分页插件属性介绍: http://www.cnblogs. ...
- java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...
- java分页的工具类,java分页工具类
PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...
- SpringBoot集成MyBatis的分页插件PageHelper
[写在前面] 项目的后台管理系统需要展示所有资源信息,select * 虽然方便但数据量过于庞大会严重降低查找效率,页面加载慢,用户体验差.分页自然是必要选择,但原生的方法过于繁杂.MyBatis的分 ...
最新文章
- hdu4864 贪心
- python_day6 shutil模块
- 计算机网络实验数据链路层分析,计算机网络第三次实验-数据链路层
- 学习笔记之卸载远程目标进程中的DLL模块(转)
- python 程序停止打印日志_停止 Spring Boot 服务的几种优雅姿势
- 零基础学习Python文本处理
- 老年人用什么方式存款最好?
- rssi参数获取_如何获取WlanGetNetworkBssList函数返回值的Rssi值
- 优化代码==>常见问卷调查模板,多端通用版本
- python pip源配置,pip配置文件存放位置的方法
- php 0x80070005,PHPIIS0x80070005解决方法
- python实战|python爬取58同城租房数据并以Excel文件格式保存到本地
- 漫话NFT——NFT的应用场景
- Linux中的0.0.0.0和 ::
- DDD的常见问题、争论以及局限性
- JavaScript计时器制作进度条
- 2021年成都列五高中高考成绩查询,2021年成都高考各高中成绩及本科升学率数据排名及分析...
- 四人中三人说真话一人说假话如何用编程去判断这样的条件
- 火柴人部落大乱斗html5游戏在线玩,火柴人部落战争
- 利用MATLAB批量读写tif数据(Landsat78)
热门文章
- 220v变12v初级线圈匝数_两款最简单的12V变220V逆变器
- python脚本下载_日记python脚本
- 山西电力市场日前价格预测【2023-05-09】
- c语言气温波动程序最大温差,《空气调节技术》试题库
- android经纬度获取行政区,获取当前经纬度、当前位置省市区(工具类)
- mysql 端口可以telnet_telnet 查看端口是否可访问
- Vue中倒计时2秒跳转界面
- 求职面试算法总结(感谢用心整理的小伙伴)
- Hapi-身份验证-hapi-auth-cookie
- [leetcode] Generate Parenthese