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

一、邏輯分頁
接口
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 類型的參數
}
配置文件
<?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);
}
}
}
數據就取出來了

二、物理分頁。
用roacle是數據庫自己的分頁語句分頁
接口
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() {
//當前第幾頁
Integer offset = 2;
//每頁行數
Integer limit = 3;
List<Student> st=sm.selectall(offset, limit);
for(Student tt:st){
System.out.println(tt);
}
}
}
查詢結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Oracle在Mybatis中SQL語句的配置方法
- Mybatis傳list參數調用oracle存儲過程的解決方法
- mybatis執(zhí)行批量更新batch update 的方法(oracle,mysql兩種)
- MyBatis Oracle 自增序列的實現方法
- Oracle+Mybatis的foreach insert批量插入報錯的快速解決辦法
- Java使用JDBC或MyBatis框架向Oracle中插入XMLType數據
- Java實現mybatis批量插入數據到Oracle
- oracle+mybatis 使用動態(tài)Sql當插入字段不確定的情況下實現批量insert
- 深入淺析mybatis oracle BLOB類型字段保存與讀取
相關文章
SpringBoot Scheduling定時任務的示例代碼
springBoot提供了定時任務的支持,通過注解簡單快捷,對于日常定時任務可以使用。本文詳細的介紹一下使用,感興趣的可以了解一下2021-08-08
SpringMVC編程使用Controller接口實現控制器實例代碼
這篇文章主要介紹了SpringMVC編程使用Controller接口實現控制器實例代碼,具有一定參考價值,需要的朋友可以參考下。2017-11-11
解決因jdk版本引起的TypeNotPresentExceptionProxy異常
這篇文章介紹了解決因jdk版本引起的TypeNotPresentExceptionProxy異常的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-12-12
使用IDEA搭建Hadoop開發(fā)環(huán)境的操作步驟(Window10為例)
經過三次重裝,查閱無數資料后成功完成hadoop在win10上實現偽分布式集群,以及IDEA開發(fā)環(huán)境的搭建。一步一步跟著本文操作可以避免無數天坑2021-07-07

