Oracle使用MyBatis中RowBounds實現(xiàn)分頁查詢功能
Oracle中分頁查詢因為存在偽列rownum,sql語句寫起來較為復雜,現(xiàn)在介紹一種通過使用MyBatis中的RowBounds進行分頁查詢,非常方便。
使用MyBatis中的RowBounds進行分頁查詢時,不需要在 sql 語句中寫 offset,limit,mybatis 會自動拼接 分頁sql ,添加 offset,limit,實現(xiàn)自動分頁。
需要前臺傳遞參數(shù)currentPage和pageSize兩個參數(shù),分別是當前頁和每頁數(shù)量,controller層把參數(shù)傳遞給service層即可,下面是service實現(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ù)據總條數(shù) int total = userDao.queryCountUser(); //返回結果集 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ù)據的起始行 int offset = (Integer.parseInt(currentPage)-1)*Integer.parseInt(pageSize); RowBounds rowbounds = new RowBounds(offset, Integer.parseInt(pageSize)); //用戶數(shù)據集合 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); //查詢用戶列表 }
對應的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調用接口,傳入對應的參數(shù),即可實現(xiàn)分頁查詢數(shù)據。
總結
以上所述是小編給大家介紹的Oracle使用MyBatis中RowBounds實現(xiàn)分頁查詢功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Oracle7.X 回滾表空間數(shù)據文件誤刪除處理方法
Oracle7.X 回滾表空間數(shù)據文件誤刪除處理方法...2007-03-03Oracle中實現(xiàn)類似于Mysql中的Field()函數(shù)功能
這篇文章主要詳細介紹了在Oracle中如何實現(xiàn)類似于Mysql中的Field()函數(shù)功能,本文主要通過代碼示例介紹了Oracle中的Decode()函數(shù)和Oracle中的row_number,需要的朋友可以參考下2023-06-06ORACLE創(chuàng)建DBlink的過程及使用方法
這篇文章主要介紹了ORACLE DBlink的創(chuàng)建和使用,本文通過實例代碼給大家給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06使用imp和exp命令對Oracle數(shù)據庫進行導入導出操作詳解
這篇文章主要介紹了使用imp和exp命令對Oracle數(shù)據庫進行導入導出操作詳解,文中通過示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07PLSQL創(chuàng)建新用戶并導入導出.dmp文件全過程
plsql導入.sql和.dmp文件時會經常用到,對于初學者來說可能沒有那么簡單,畢竟oracle數(shù)據庫比較麻煩,這篇文章主要給大家介紹了關于PLSQL創(chuàng)建新用戶并導入導出.dmp文件的相關資料,需要的朋友可以參考下2023-11-11