国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Spring集成PageHelper的簡單用法示例

2024-07-14 08:42:01
字體:
來源:轉載
供稿:網友

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

<!-- 添加Mybatis依賴 -->    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis</artifactId>      <version>3.3.0</version>    </dependency>    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis-spring</artifactId>      <version>1.2.3</version>    </dependency>    <!-- pageHelper -->    <dependency>      <groupId>com.github.pagehelper</groupId>      <artifactId>pagehelper</artifactId>      <version>4.1.4</version>    </dependency>

2、需要在Mybatis的配置信息中使用PageHelper插件,mybatis-config.xml

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE configuration    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>  <plugins>    <plugin interceptor="com.github.pagehelper.PageHelper">      <!--指明數據庫 4.0.0以后不需要設置此屬性-->      <property name="dialect" value="mysql"/>      <!-- 該參數默認為false -->      <!-- 設置為true時,會將RowBounds第一個參數offset當成pageNum頁碼使用 -->      <!-- 和startPage中的pageNum效果一樣-->      <property name="offsetAsPageNum" value="true"/>      <!-- 該參數默認為false -->      <!-- 設置為true時,使用RowBounds分頁會進行count查詢 -->      <property name="rowBoundsWithCount" value="true"/>      <!-- 設置為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 -->      <!-- (相當于沒有執行分頁查詢,但是返回結果仍然是Page類型)-->      <property name="pageSizeZero" value="true"/>      <!-- 3.3.0版本可用 - 分頁參數合理化,默認false禁用 -->      <!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最后一頁 -->      <!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空數據 -->      <property name="reasonable" value="true"/>      <!-- 3.5.0版本可用 - 為了支持startPage(Object params)方法 -->      <!-- 增加了一個`params`參數來配置參數映射,用于從Map或ServletRequest中取值 -->      <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默認值 -->      <!-- 不理解該含義的前提下,不要隨便復制該配置 -->      <property name="params" value="pageNum=start;pageSize=limit;"/>      <!-- 支持通過Mapper接口參數來傳遞分頁參數 -->      <property name="supportMethodsArguments" value="true"/>      <!-- always總是返回PageInfo類型,check檢查返回類型是否為PageInfo,none返回Page -->      <property name="returnPageInfo" value="check"/>    </plugin>  </plugins></configuration>

3、在配置Spring配置文件中,配置Mybatis的SqlSessionFactory時,需要把mybatis-config.xml添加到屬性中

<!-- SqlSessionFactory -->  <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">    <!--設置數據源-->    <property name="dataSource" ref="dataSource"></property>    <!--設置映射文件-->    <property name="mapperLocations" value="classpath:mybatis/sqlmap/mapper/*.xml"></property>    <!--設置pageHelper-->    <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>  </bean>

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英吉沙县| 那坡县| 卓资县| 汝城县| 通州市| 鹰潭市| 罗山县| 天长市| 祁连县| 当雄县| 九龙县| 乡宁县| 开封县| 慈溪市| 泸溪县| 宜州市| 剑阁县| 遂宁市| 昔阳县| 揭东县| 南京市| 志丹县| 兴海县| 哈尔滨市| 澜沧| 武功县| 宽城| 邢台市| 西城区| 邯郸市| 佛坪县| 改则县| 榆林市| 香格里拉县| 柳河县| 北碚区| 凤阳县| 嘉鱼县| 马山县| 堆龙德庆县| 久治县|