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

