Java - Mybatis借助PageHelper實現分頁,集成SpringBoot

未使用SpringBoot

第?步:引?依賴
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.1</version>
</dependency>
第?步:在mybatis-config.xml?件中配置插件
typeAliases標簽下?進?配置:
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

第三步:編寫Java代碼
CarMapper接?
List<Car> selectAll();
CarMapper.xml
<select id="selectAll" resultType="Car">select * from t_car
</select>
關鍵點:
在查詢語句之前開啟分?功能。
在查詢語句之后封裝PageInfo對象。(PageInfo對象將來會存儲到request域當中。在??上展
示。)
@Test
public void testPageHelper() throws Exception{SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().b
uild(Resources.getResourceAsStream("mybatis-config.xml"));SqlSession sqlSession = sqlSessionFactory.openSession();CarMapper mapper = sqlSession.getMapper(CarMapper.class);// 開啟分?PageHelper.startPage(2, 2);// 執?查詢語句List<Car> cars = mapper.selectAll();// 獲取分?信息對象PageInfo<Car> pageInfo = new PageInfo<>(cars, 5);System.out.println(pageInfo);
}
執?結果:
PageInfo{pageNum=2, pageSize=2, size=2, startRow=3, endRow=4, total=6, pages=3,
list=Page{count=true, pageNum=2, pageSize=2, startRow=2, endRow=4, total=6, pages=3,
reasonable=false, pageSizeZero=false}[Car{id=86, carNum='1234', brand='豐?霸道',
guidePrice=50.5, produceTime='2020-10-11', carType='燃油?'}, Car{id=87, carNum='1234',
brand='豐?霸道', guidePrice=50.5, produceTime='2020-10-11', carType='燃油?'}], prePage=1,
nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true,
navigatePages=5, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]}


SpringBoot中

PageHelper.startPage(int PageNum,int PageSize):用來設置頁面的位置和展示的數據條目數,我們設置每頁展示5條數據。PageInfo用來封裝頁面信息,返回給前臺界面。PageInfo中的一些我們需要用到的參數如下表:

PageInfo.list?? ?結果集
PageInfo.pageNum?? ?當前頁碼
PageInfo.pageSize?? ?當前頁面顯示的數據條目
PageInfo.pages?? ?總頁數
PageInfo.total?? ?數據的總條目數
PageInfo.prePage?? ?上一頁
PageInfo.nextPage?? ?下一頁
PageInfo.isFirstPage?? ?是否為第一頁
PageInfo.isLastPage?? ?是否為最后一頁
PageInfo.hasPreviousPage?? ?是否有上一頁
PageHelper.hasNextPage?? ?是否有下一頁

(1)引入pom.xml

<!-- 分頁插件 -->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version>
</dependency>

(2)打開application.properties,添加如下幾行配置信息

#分頁插件
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true

創建controller層
Mapper文件中, SQL不用增加 limit分頁指令,需要什么直接查就可以,Pagehelper 可以自動實現分頁!

package com.ithuang.demo.controller;import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.service.OrderInfoService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.List;@RestController
public class OrderInfoController {@Resourceprivate OrderInfoService orderInfoService;@GetMapping("/getOrderInfoList")public List<OrderInfo> getOrderInfoList(@RequestParam(value = "pageNow",defaultValue = "1") int pageNow,@RequestParam(value = "pageSize",defaultValue = "3") int pageSize){return orderInfoService.getOrderInfoList(pageNow,pageSize);}
}


2. 創建Service層

package com.ithuang.demo.service;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ithuang.demo.bean.OrderInfo;
import com.ithuang.demo.mapper.OrderInfoMapper;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;@Service
public class OrderInfoService {@Resourceprivate OrderInfoMapper orderInfoMapper;public List<OrderInfo> getOrderInfoList(int pageNow, int pageSize) {PageHelper.startPage(pageNow,pageSize);List<OrderInfo> orderInfoList = orderInfoMapper.getOrderInfoList();PageInfo<OrderInfo> userPageInfo = new PageInfo<>(orderInfoList);return userPageInfo.getList();}
}


3. 創建Mapper層

package com.ithuang.demo.mapper;import com.ithuang.demo.bean.OrderInfo;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface OrderInfoMapper {List<OrderInfo> getOrderInfoList();
}


5. 編寫xml文件?

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ithuang.demo.mapper.OrderInfoMapper"><select id="getOrderInfoList" parameterType="int" resultType="com.ithuang.demo.bean.OrderInfo">SELECT * FROM order_info</select>
</mapper>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215728.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch張量:內存布局

你可能對 torch 上的某些函數感到困惑&#xff0c;它們執行相同的操作但名稱不同。 例如&#xff1a; reshape()、view()、permute()、transpose() 等。 這些函數的做法真的不同嗎&#xff1f; 不&#xff01; 但為了理解它&#xff0c;我們首先需要了解一下張量在 pytorch 中…

1 CPU實現的基本框圖

匯編語言 && 指令格式 CPU設計的框架&#xff1a;三級流水線 ROM存放指令和數據&#xff0c;大端模式&小端模式&#xff0c;地址對齊 取指 譯碼&#xff1a; 執行&#xff1a; 匯編語言 & 指令格式 流水線實現工作機制 模塊功能劃分&接口信號 參考…

Linux中用rpm管理軟件

本章主要介紹使用rpm對軟件包進行管理 使用rpm查詢軟件的信息使用rpm安裝及卸載軟件使用rpm對軟件進行更新使用rpm對軟件進行驗證 rpm 全稱是redhat package manager&#xff0c;后來改成rpm package manager&#xff0c;這是根據源 碼包編譯出來的包。先從光盤中拷貝一個包&…

strict-origin-when-cross-origin

嚴格限制同源策略 &#xff08;1&#xff09;允許服務器的同源IP地址訪問 &#xff08;2&#xff09;允許Referer --- 后端服務器要配置

linux sed命令刪除一行/多行_sed刪除第一行/linux刪除文件某一行

sed系列文章 linux常用命令(9)&#xff1a;sed命令(編輯/替換/刪除文本)linux sed命令刪除一行/多行_sed刪除第一行/linux刪除文件某一行 文章目錄 sed系列文章一、sed刪除某一行內容/刪除最后一行二、sed刪除多行三、擴展3.1、-i命令 本文主要講解如何刪除txt文件中的某一行內…

vite+ts——user.ts——ts接口定義+axios請求的寫法

import axios from axios; import qs from query-string; import {UserState} from /store/modules/user/types;export interface LoginData{username:string;password:string;grant_type?:string;scope?:string;client_id?:string;client_secret?:string;response_type?:…

企業使用APP自動化測試工具的重要因素

隨著移動應用市場的蓬勃發展&#xff0c;企業對高質量、高效率的軟件交付提出了更高的要求。在這個背景下&#xff0c;APP自動化測試工具成為了企業不可或缺的一部分。以下是企業采用APP自動化測試工具的關鍵因素&#xff1a; 1. 快速且可重復的測試執行 自動化測試工具能夠快速…

Docker入門概念

文章目錄 容器&#xff08;container&#xff1a;容器/集裝箱&#xff09;技術虛擬機解決了哪些部署問題docker解決了哪些部署問題docker是如何做到容器間運行時環境隔離的docker基本概念docker基本使用 容器&#xff08;container&#xff1a;容器/集裝箱&#xff09;技術 容…

奧威亞視頻云平臺VideoCover.aspx 接口任意文件上傳漏洞復現 [附POC]

文章目錄 奧威亞視頻云平臺VideoCover.aspx 接口任意文件上傳漏洞復現 [附POC]0x01 前言0x02 漏洞描述0x03 影響版本0x04 漏洞環境0x05 漏洞復現1.訪問漏洞環境2.構造POC3.復現0x06 修復建議奧威亞視頻云平臺VideoCover.aspx 接口任意文件上傳漏洞復現 [附POC] 0x01 前言 免責…

做數據分析為何要學統計學(5)——什么問題適合使用卡方檢驗?

卡方檢驗作為一種非常著名的非參數檢驗方法&#xff08;不受總體分布因素的限制&#xff09;&#xff0c;在工程試驗、臨床試驗、社會調查等領域被廣泛應用。但是也正是因為使用的便捷性&#xff0c;造成時常被誤用。本文參閱相關的文獻&#xff0c;對卡方檢驗的適用性進行粗淺…

原來使用代碼也可以畫時序圖,用這個Mermaid就行,真香

本文首發于我的個人掘金博客&#xff0c;看到很多人都比較喜歡這篇文章&#xff0c;分享給大家。 個人博客主頁&#xff1a;https://www.aijavapro.cn 個人掘金主頁&#xff1a;juejin.cn/user/2359988032644541/posts 個人知識星球: 覺醒的新世界程序員 一、背景 在軟件開發和…

spring數據校驗

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

數據庫(一)| 數據庫概述、基本概念、關系型數據庫特點、超鍵候選碼等

文章目錄 1 數據庫的一些基礎概念1.1 數據庫和數據庫管理系統1.2 關系模式和關系實例1.3 數據庫模式和數據庫實例 2 數據庫組織形式2.1 數據采用文件的缺點2.2 使用數據庫管理系統的 優點 3 關系型數據庫特點4 三個層次的數據抽象Data Abstraction5 超鍵、候選碼、主碼、外碼 1…

php之jwt使用

PHP JWT&#xff08;JSON Web Token&#xff09;是一種用于身份驗證和授權的開放標準。JWT是一個包含有關用戶或實體身份信息的安全令牌&#xff0c;它由三部分組成&#xff1a;頭部&#xff08;Header&#xff09;、載荷&#xff08;Payload&#xff09;和簽名&#xff08;Sig…

計算機網絡編程

網絡編程 Java 是第一大編程語言和開發平臺。它有助于企業降低成本、縮短開發周期、推動創新以及改善應用服務。如今全球有數百萬開發人員運行著超過 51 億個 Java 虛擬機&#xff0c; Java 仍是企業和開發人員的首選開發平臺。 課程內容的介紹 1. 計算機網絡基礎 2. So…

數據結構基礎介紹

一.起源及重要性 1968 年&#xff0c;美國的高德納 Donakl E . Kn uth 教授在其所寫的《 計算機程序藝術》第一卷《基本算法 》 中&#xff0c;較系統地闡述了數據的邏輯結構和存儲結構及其操作&#xff0c; 開創了數據結構的課程體系 &#xff0c;數據結構作為一門獨立的…

B029-JDBC增強

目錄 PreparedStatement 查詢1.sql注入2.Statement分析 (面試題)3.PreparedStatement (面試題) 登錄功能的完善事務鏈接池概念實現DBCP連接池實現第一種配置方式第二種配置方式 返回主鍵BaseDao的抽取 PreparedStatement 查詢 1.sql注入 就是在sql的字符串拼接的時候&#xf…

基于單片機的定時插座在智能家居中的應用

近年來&#xff0c;隨著科學技術的發展迅速&#xff0c;人們對智能化的要求越來越高。越來越多的智能化產品進入千家萬戶&#xff0c;如電腦電視、掃地機器人、智能空氣凈化器等。這些家居電器和電子產品大都需要連接電源&#xff0c;為滿足多種用電器的正常使用&#xff0c;延…

DevEco Studio 生成HPK文件

DevEco Studio 生成HPK文件 一、安裝環境 操作系統: Windows 10 專業版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、生成HPK文件 生成的HPK文件存放在entry文件夾下。下圖是未生成HPK的樣式。 生成HPK&#xff1a;菜單Build->Build Hap(s)/APP(s)->Build Hap(s)…

啟動jar包命令

一、Windows環境 找到jar包的位置&#xff1b; 按shift鍵&#xff0c;點擊鼠標右鍵&#xff0c;選中在此處打開PowerShell窗口&#xff1b; 此時進入命令行工具 輸入java -jar .\java_web-0.0.1-SNAPSHOT.jar&#xff08;注意空格&#xff09;。 二、Linux環境 2.1 方式一 …