您的位置:首页 > 博客中心 > 数据库 >

oracle分页语句

时间:2022-03-14 15:05

以Student表为例进行分页

纯sql分页

 SELECT * FROM (
       SELECT ROWNUM,A.* FROM (
            SELECT *
            FROM STUDENT ORDER BY createTime DESC
       )A WHERE ROWNUM <= 10 )
  WHERE ROWNUM >=1;

mybatis分页

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="student">
	<typeAlias alias="Student" type="com.bobo.code.model.Student" />
	<select id="select" resultClass="Student">
		SELECT * FROM
		(
			SELECT  A.*,ROWNUM 	FROM
				 (SELECT * FROM	STUDENT) A
			WHERE  <![CDATA[ ROWNUM <=  #minRownnum#]]>
		)
		WHERE  <![CDATA[ROWNUM >=   #maxRownum#]]>
	</select>

	<select id="count" resultClass="java.lang.Integer">
		SELECT count(*) FROM STUDENT
	</select>

</sqlMap>

  

		queryMap.put("minRownnum", (pageNumber - 1)*Pager.DEFAULT_PAGE_SIZE +1);//oracle rownum起
		queryMap.put("maxRownum", pageNumber * Pager.DEFAULT_PAGE_SIZE );//oracle rownum止

  

开发过程异常

无法转换为内部表示

当Student的属性id 为Integer,和数据库中的字段ID为VARCHAR2 导致不对应会取不出数据

技术分享

热门排行

今日推荐

热门手游