1. 程式人生 > >Spring整合PageHelper的簡單用法

Spring整合PageHelper的簡單用法

1、Maven依賴,注意使用PageHelper時的版本必須與Mybatis版本對應

 1         <!-- 新增Mybatis依賴 -->
 2         <dependency>
 3             <groupId>org.mybatis</groupId>
 4             <artifactId>mybatis</artifactId>
 5             <version>3.3.0</version>
 6         </dependency
> 7 <dependency> 8 <groupId>org.mybatis</groupId> 9 <artifactId>mybatis-spring</artifactId> 10 <version>1.2.3</version> 11 </dependency> 12 <!-- pageHelper --> 13 <dependency
> 14 <groupId>com.github.pagehelper</groupId> 15 <artifactId>pagehelper</artifactId> 16 <version>4.1.4</version> 17 </dependency>

2、需要在Mybatis的配置資訊中使用PageHelper外掛,mybatis-config.xml

 1 <?xml version="1.0" encoding="utf-8" 
?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 6 <configuration> 7 <plugins> 8 <plugin interceptor="com.github.pagehelper.PageHelper"> 9 <!--指明資料庫 4.0.0以後不需要設定此屬性--> 10 <property name="dialect" value="mysql"/> 11 <!-- 該引數預設為false --> 12 <!-- 設定為true時,會將RowBounds第一個引數offset當成pageNum頁碼使用 --> 13 <!-- 和startPage中的pageNum效果一樣--> 14 <property name="offsetAsPageNum" value="true"/> 15 <!-- 該引數預設為false --> 16 <!-- 設定為true時,使用RowBounds分頁會進行count查詢 --> 17 <property name="rowBoundsWithCount" value="true"/> 18 <!-- 設定為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 --> 19 <!-- (相當於沒有執行分頁查詢,但是返回結果仍然是Page型別)--> 20 <property name="pageSizeZero" value="true"/> 21 <!-- 3.3.0版本可用 - 分頁引數合理化,預設false禁用 --> 22 <!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁 --> 23 <!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空資料 --> 24 <property name="reasonable" value="true"/> 25 <!-- 3.5.0版本可用 - 為了支援startPage(Object params)方法 --> 26 <!-- 增加了一個`params`引數來配置引數對映,用於從Map或ServletRequest中取值 --> 27 <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置對映的用預設值 --> 28 <!-- 不理解該含義的前提下,不要隨便複製該配置 --> 29 <property name="params" value="pageNum=start;pageSize=limit;"/> 30 <!-- 支援通過Mapper介面引數來傳遞分頁引數 --> 31 <property name="supportMethodsArguments" value="true"/> 32 <!-- always總是返回PageInfo型別,check檢查返回型別是否為PageInfo,none返回Page --> 33 <property name="returnPageInfo" value="check"/> 34 </plugin> 35 </plugins> 36 </configuration>

3、在配置Spring配置檔案中,配置Mybatis的SqlSessionFactory時,需要把mybatis-config.xml新增到屬性中

1     <!-- SqlSessionFactory -->
2     <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
3         <!--設定資料來源-->
4         <property name="dataSource" ref="dataSource"></property>
5         <!--設定對映檔案-->
6         <property name="mapperLocations" value="classpath:mybatis/sqlmap/mapper/*.xml"></property>
7         <!--設定pageHelper-->
8         <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
9     </bean>

4、使用Mybatis的mapper介面進行查詢,在查詢時,需要使用PageHelper.startPage方法

 1     @Test
 2     public void testSelectAll() {
 3         Page<Doctor> page = PageHelper.startPage(1, 3);
 4         //selectAll查詢出的List即為上面定義的page
 5         doctorMapper.selectAll();
 6         //注意:
 7         //使用PageHelper.startPage只是針對接下來的一條查詢語句,
 8         //如果又查詢了一次資料,則還需要使用一次PageHelper.startPage
 9         logger.info("獲取所有Doctor資訊,獲得記錄數:{}", page.size());
10         logger.info("獲取所有Doctor資訊,獲得記錄:{}", page);
11         //使用PageInfo封裝
12         PageInfo<Doctor> info = new PageInfo<Doctor>(page);
13         logger.info("info.getPages:{}",info.getPages());
14     }

5、Page物件繼承了ArrayList,因此在使用了PageHelper.startPage之後,Page即為查詢到的資料,並且在Page中還額外封裝了pageNum,pageSize等屬性,還可以使用PageInfo封裝Page,PageInfo中有更多的分頁屬性,例如isFirstPage是否為首頁、isLastPage是否為末尾、hasNextPage是否存在下一頁等。

相關推薦

Spring整合PageHelper簡單用法

1、Maven依賴,注意使用PageHelper時的版本必須與Mybatis版本對應 1 <!-- 新增Mybatis依賴 --> 2 <dependency> 3 <groupId>org.mybatis&l

Spring Redis Jedis簡單用法

maven依賴 <properties>       <spring.version>4.3.10.RELEASE</spring.version>    &nb

Activiti環境配置、專案搭建、與Spring整合簡單示例

 概念 示例專案下載 環境搭建:     FBI WARNING 兩個視訊,螢幕錄影專家錄製,非病毒,本站願意承擔責任,下載完檔案請先核對MD5。     1.Eclipse配置Tomcat和部署WEB應用.exe(MD5:81c1dfb994ff5b2094ce

Spring整合RabbitMQ簡單示例

首先匯入工程必須的依賴,基本的spring的包就不用說了,除了這些還需要匯入一下2個,用於整合 <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-

Apache shiro的簡單介紹與使用(與spring整合使用)

簡單介紹 ace .cn album spring 整合 amp 介紹 pri http://pic.cnhubei.com/space.php?uid=1774&do=album&id=1343605http://pic.cnhubei.com/space

spring boot 整合pagehelper分頁插件

.com 2.0 configure deb sta pub 相關 spring 整合 Spring Boot 整合pagehelper分頁插件 測試環境: spring boot 版本 2.0.0.M7 mybatis starter 版本 1.3.1 jdk 1.8

spring boot整合shiro 簡單許可權控制

package me.config; import javax.annotation.Resource; import me.domain.entity.CmsUser; import me.service.UserService; import me.utils.MD5Util

ssm中加入redis,spring -redis整合簡單,認識redis

1匯入spring和redis的jar包,當然推薦用maven。開啟服務 2.application.xml中配置 定義執行緒池 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  

spring boot admin 整合簡單配置隨筆

和我並肩作戰的同事也要相繼離職了,心裡還是有很多不捨得,現在業務也陸陸續續落在了肩頭,上午專案經理讓我把spring boot admin整合到現在的專案中,已遍後續的監控。 哇!我哪裡搞過這個!心裡好慌,好在我面向物件雖然不是很精通,但是面向百度我倒是很拿手,於是開啟了,面向百度程式設計,現在已經成功過了

Spring整合Shiro及簡單實用

匯入依賴 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifact

簡單Spring整合JMS學習

      上一張我們已經學習了關於JMS的一些基礎知識,當時我們已經提到,在實際開發中,我們一般都是過過spring去整合jms的方式把jms應用到我們的專案中.那麼接下來我們就來探討一下spring整合jms相關的內容!     spring整合jms後對於開發者來說要

簡單探討spring整合mybatis時sqlSession不需要釋放關閉的問題

近期,在使用spring和mybatis框架編寫程式碼時,sqlSession不需要手動關閉這一點引起了我的興趣。我們都知道,單獨使用mybatis時,sqlSeesion使用完畢後是需要進行手動關閉的,但為什麼在和spring整合後就不需要了呢?在查閱了資料後得知,這是使用了spring中的AOP面向切面程

spring、mybatis整合原始碼簡單分析

配置 <bean id="localDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

RabbitMQ ——Spring整合及exchange的direct、topic方式實現和簡單佇列實現

程式整體結構 Maven依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema

spring-boot整合spring-security實現簡單登入(ajax登入實現)

平常再做一些專案時,有些專案並不需要複雜的登入許可權驗證 只需要簡單登入許可權驗證(保證安全可靠的前提下),找來找去只有spring-security最適合不過了,在spring-boot下配置簡單 便捷 快速 能滿足基本的登入許可權控制需求。 第一步:引入spring

Spring整合MyBatis 的簡單xml配置:

<!--spring框架整合mybatis 1.宣告資料來源(datasource) 2.宣告SqlSessionFactoryBean --> <!--宣告資料來源--> <bean id="dataSou

Spring Cloud+Vue簡單模仿微博四:服務提供者整合Hibernate以及設計資料庫

一、建立資料庫 暫時先建立一個使用者表 /* Navicat MySQL Data Transfer Source Server : MyDB Source Server Version : 50549 Source Host : l

Spring Boot整合Thymeleaf簡單例項

1、定義 Thymeleaf是一種用於Web和獨立環境的現代伺服器端的Java模板引擎。 2、簡單例項 (1)目錄結構 (2)MySpringBootApplication.java pa

spring boot整合mongodb使用簡單介紹 spring整合mongo使用簡單介紹 spring整合mongoDB使用簡單介紹

最近在專案中使用到了mongodb,第一次用,各種百度加問大佬,簡單記錄下自己的理解,一是希望能幫助到同樣要學習mongo的同學,另外就是以後可以看一下複習複習。 簡單理解 第一步匯入mongo的依賴 <!--mongodb--> <dependen

Spring整合Hibernate實現Spring Data JPA (簡單使用)

pda artifact framework factor path sta ans 項目結構 pub 直接上代碼: pom.xml <!-- hibernate start --> <!-- spring data jp