Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁查詢功能
Oracle中分頁查詢因?yàn)榇嬖趥瘟衦ownum,sql語句寫起來較為復(fù)雜,現(xiàn)在介紹一種通過使用MyBatis中的RowBounds進(jìn)行分頁查詢,非常方便。
使用MyBatis中的RowBounds進(jìn)行分頁查詢時(shí),不需要在 sql 語句中寫 offset,limit,mybatis 會(huì)自動(dòng)拼接 分頁sql ,添加 offset,limit,實(shí)現(xiàn)自動(dòng)分頁。
需要前臺傳遞參數(shù)currentPage和pageSize兩個(gè)參數(shù),分別是當(dāng)前頁和每頁數(shù)量,controller層把參數(shù)傳遞給service層即可,下面是service實(shí)現(xiàn)的代碼:
package com.xyfer.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.RowBounds; import com.xyfer.dao.UserDao; import com.xyfer.service.UserService; public class UserServiceImpl implements UserService { private UserDao userDao; @Override public Map<String, Object> queryUserList(String currentPage, String pageSize) { //查詢數(shù)據(jù)總條數(shù) int total = userDao.queryCountUser(); //返回結(jié)果集 Map<String,Object> resultMap = new HashMap<String,Object>(); resultMap.put("total", total); //總頁數(shù) int totalpage = (total + Integer.parseInt(pageSize) - 1) / Integer.parseInt(pageSize); resultMap.put("totalpage", totalpage); //數(shù)據(jù)的起始行 int offset = (Integer.parseInt(currentPage)-1)*Integer.parseInt(pageSize); RowBounds rowbounds = new RowBounds(offset, Integer.parseInt(pageSize)); //用戶數(shù)據(jù)集合 List<Map<String, Object>> userList = userDao.queryUserList(rowbounds); resultMap.put("userList", userList); return resultMap; } }
dao層接口:
package com.xyfer.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.session.RowBounds; public interface UserDao { public int queryCountUser(); //查詢用戶總數(shù) public List<Map<String, Object>> queryUserList(RowBounds rowbounds); //查詢用戶列表 }
對應(yīng)的mapper.xml文件:
<?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.xyfer.mapper.UserMapper"> <!-- 查詢用戶總數(shù) --> <select id="queryCountUser" resultType="java.lang.Integer"> select count(1) from user </select> <!-- 查詢用戶列表 --> <select id="queryUserList" resultType="java.util.Map"> select * from user </select> </mapper>
通過postman調(diào)用接口,傳入對應(yīng)的參數(shù),即可實(shí)現(xiàn)分頁查詢數(shù)據(jù)。
總結(jié)
以上所述是小編給大家介紹的Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁查詢功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法...2007-03-03Oracle中實(shí)現(xiàn)類似于Mysql中的Field()函數(shù)功能
這篇文章主要詳細(xì)介紹了在Oracle中如何實(shí)現(xiàn)類似于Mysql中的Field()函數(shù)功能,本文主要通過代碼示例介紹了Oracle中的Decode()函數(shù)和Oracle中的row_number,需要的朋友可以參考下2023-06-06Oracle索引(B*tree與Bitmap)的學(xué)習(xí)總結(jié)
本篇文章是對Oracle索引(B*tree與Bitmap)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05ORACLE創(chuàng)建DBlink的過程及使用方法
這篇文章主要介紹了ORACLE DBlink的創(chuàng)建和使用,本文通過實(shí)例代碼給大家給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06win10 oracle11g安裝報(bào)錯(cuò)問題集合 附解決方法
這篇文章主要為大家總結(jié)了win10 oracle11g安裝報(bào)錯(cuò)問題的產(chǎn)生原因,和oracle安裝報(bào)錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05詳解如何刪除Oracle數(shù)據(jù)庫臨時(shí)表空間
因生產(chǎn)環(huán)境磁盤空間不足,影響了業(yè)務(wù),短時(shí)間內(nèi)無法擴(kuò)容磁盤,經(jīng)過排查發(fā)現(xiàn),可以釋放temp臨時(shí)表空間來臨時(shí)釋放部分空間,本文記錄了如何釋放臨時(shí)表空間的詳細(xì)操作步驟,需要的朋友可以參考下2024-03-03使用imp和exp命令對Oracle數(shù)據(jù)庫進(jìn)行導(dǎo)入導(dǎo)出操作詳解
這篇文章主要介紹了使用imp和exp命令對Oracle數(shù)據(jù)庫進(jìn)行導(dǎo)入導(dǎo)出操作詳解,文中通過示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07PLSQL創(chuàng)建新用戶并導(dǎo)入導(dǎo)出.dmp文件全過程
plsql導(dǎo)入.sql和.dmp文件時(shí)會(huì)經(jīng)常用到,對于初學(xué)者來說可能沒有那么簡單,畢竟oracle數(shù)據(jù)庫比較麻煩,這篇文章主要給大家介紹了關(guān)于PLSQL創(chuàng)建新用戶并導(dǎo)入導(dǎo)出.dmp文件的相關(guān)資料,需要的朋友可以參考下2023-11-11