mybatis中oracle實現(xiàn)分頁效果實例代碼
首先當(dāng)我們需要通過xml格式處理sql語句時,經(jīng)常會用到< ,<=,>,>=等符號,但是很容易引起xml格式的錯誤,這樣會導(dǎo)致后臺將xml字符串轉(zhuǎn)換為xml文檔時報錯,從而導(dǎo)致程序錯誤。
這樣的問題在iBatiS中或者自定義的xml處理sql的程序中經(jīng)常需要我們來處理。其實很簡單,我們只需作如下替換即可避免上述的錯誤:
| 原符號 | < | <= | > | >= | & | ' | " |
| 替換符號 | < | <= | > | >= | & | ' | " |
數(shù)據(jù)庫的數(shù)據(jù)

一、邏輯分頁
接口
package com.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
import com.model.Student;
public interface StudentMapper {
/**
* 分頁查詢
*/
public List<Student> selectall(RowBounds rb);//需要傳RowBounds 類型的參數(shù)
}
配置文件
<?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.dao.StudentMapper">
<select id="selectall" resultType="student" >
select * from student
</select>
</mapper>
JUnit測試
package com.util;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.dao.StudentMapper;
import com.model.Student;
public class Jtest {
private SqlSession ss;
private StudentMapper sm;
@Before
public void setUp() throws Exception {
ss=SqlSessionUtil.getSqlSession();
sm=ss.getMapper(StudentMapper.class);
}
@After
public void tearDown() throws Exception {
ss.commit();
ss.close();
}
@Test
public void selectall() {
//跳過幾行
int offset = 3;
//取幾行
int limit = 3;
RowBounds rb = new RowBounds(offset, limit);
List<Student> st=sm.selectall(rb);
for(Student tt:st){
System.out.println(tt);
}
}
}
數(shù)據(jù)就取出來了

二、物理分頁。
用roacle是數(shù)據(jù)庫自己的分頁語句分頁
接口
package com.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
import com.model.Student;
public interface StudentMapper {
/**
* 分頁查詢
*/
public List<Student> selectall(Integer offset, Integer limit );
}
配置文件
<?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.dao.StudentMapper">
<select id="selectall" resultType="student">
select * from (select t.*,rownum rownu from STUDENT t
where rownum<=#{param1}*#{param2})tt
where tt.rownu>(#{param1}-1)*#{param2}
</select>
</mapper>
JUnit測試
package com.util;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.dao.StudentMapper;
import com.model.Student;
public class Jtest {
private SqlSession ss;
private StudentMapper sm;
@Before
public void setUp() throws Exception {
ss=SqlSessionUtil.getSqlSession();
sm=ss.getMapper(StudentMapper.class);
}
@After
public void tearDown() throws Exception {
ss.commit();
ss.close();
}
@Test
public void selectall() {
//當(dāng)前第幾頁
Integer offset = 2;
//每頁行數(shù)
Integer limit = 3;
List<Student> st=sm.selectall(offset, limit);
for(Student tt:st){
System.out.println(tt);
}
}
}
查詢結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Oracle在Mybatis中SQL語句的配置方法
- Mybatis傳list參數(shù)調(diào)用oracle存儲過程的解決方法
- mybatis執(zhí)行批量更新batch update 的方法(oracle,mysql兩種)
- MyBatis Oracle 自增序列的實現(xiàn)方法
- Oracle+Mybatis的foreach insert批量插入報錯的快速解決辦法
- Java使用JDBC或MyBatis框架向Oracle中插入XMLType數(shù)據(jù)
- Java實現(xiàn)mybatis批量插入數(shù)據(jù)到Oracle
- oracle+mybatis 使用動態(tài)Sql當(dāng)插入字段不確定的情況下實現(xiàn)批量insert
- 深入淺析mybatis oracle BLOB類型字段保存與讀取
相關(guān)文章
詳解MyBatis的動態(tài)SQL實現(xiàn)原理
MyBatis提供了強(qiáng)大的動態(tài)SQL語句生成功能,以應(yīng)對復(fù)雜的業(yè)務(wù)場景,本篇文章將結(jié)合MyBatis解析SQL語句的過程對MyBatis中對<if>,<where>,<foreach>等動態(tài)SQL標(biāo)簽的支持進(jìn)行分析,需要的朋友可以參考下2023-07-07
SpringBoot Scheduling定時任務(wù)的示例代碼
springBoot提供了定時任務(wù)的支持,通過注解簡單快捷,對于日常定時任務(wù)可以使用。本文詳細(xì)的介紹一下使用,感興趣的可以了解一下2021-08-08
HashMap和List遍歷方法及如何遍歷刪除元素總結(jié)
在本篇文章中小編給大家分享了關(guān)于HashMap和List遍歷方法及如何遍歷刪除元素知識點(diǎn)總結(jié),需要的朋友們參考下。2019-05-05
SpringMVC編程使用Controller接口實現(xiàn)控制器實例代碼
這篇文章主要介紹了SpringMVC編程使用Controller接口實現(xiàn)控制器實例代碼,具有一定參考價值,需要的朋友可以參考下。2017-11-11
解決因jdk版本引起的TypeNotPresentExceptionProxy異常
這篇文章介紹了解決因jdk版本引起的TypeNotPresentExceptionProxy異常的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
使用IDEA搭建Hadoop開發(fā)環(huán)境的操作步驟(Window10為例)
經(jīng)過三次重裝,查閱無數(shù)資料后成功完成hadoop在win10上實現(xiàn)偽分布式集群,以及IDEA開發(fā)環(huán)境的搭建。一步一步跟著本文操作可以避免無數(shù)天坑2021-07-07

