mybatis中oracle实现分页效果实例代码

网友投稿 289 2023-05-21


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 selectall(RowBounds rb);//需要传RowBounds 类型的参数

}

配置文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from student

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 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;http://

import com.model.Student;

public interface StudentMapper {

/**

* 分页查询

*/

public List selectall(Integer offset, Integer limit );

}

配置文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from (select t.*,rownum rownu from STUDENT t

where rownum<=#{param1}*#{param2})tt

where tt.rownu>(#{param1}-1)*#{param2}

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 st=sm.selectall(offset, limit);

for(Student tt:st){

System.out.println(tt);

}

}

}

查询结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Boot的listener(监听器)简单使用实例详解
下一篇:Java中final,finally,finalize三个关键字的区别_动力节点Java学院整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~