mybatis+oracle实现分页查询--非常简单实用

userInfo.xml

[java] view plain copy

1. </pre>前几天刚学习了mybatis,之后就在我写的某个列子中加上一层mybatis来访问oracle数据库,一般的增删改查经过测试都没有问题,唯一留下oracle的分页查询,一开始自然而然的就想当然的把oracle分页查询语句写进userInfo.xml中<p></p><p></p><pre name="code" class="html"><select id="queryUserListForPage" parameterclass="Page" resultmap="UserInfoResult">select * from (select t.*, ROWNUM RM from (select * from tb_user_info) t where ROWNUM<=#max# ) where RM> #offset#</select>  

 

但该xml文件会报语法错误,不信,运行果然出错了,尝试多种方法之后还是不行

 

1. <select id="queryUserListForPage" parameterClass="string" resultMap="UserInfoResult">  

2.         $sql$  

3.     </select>  

 

 

 

1. package com.is.dao.ibatis.impl;  

2.   

3. /** 

4.  * Oracle分页查询语句生成类 为ibatis实现分页设计 

5.  *  

6.  * @author qiulongjie 

7.  *  

8.  */  

9. public class PageInfo {  

10.     private int offset;  

11.     private int max;  

12.     private String sql;  

13.   

14.     public PageInfo() {  

15.     }  

16.   

17.     public PageInfo(int offset, int max) {  

18.         this.offset = offset;  

19.         this.max = max;  

20.         this.sql = "select * from (select t.*, ROWNUM RM from (select * from tb_user_info) t where ROWNUM<=" + this.max  

21.                 + " ) where RM> " + this.offset;  

22.         System.out.println(sql);  

23.     }  

24.   

25.     public String getSql() {  

26.         return sql;  

27.     }  

28.   

29.     public void setSql(String sql) {  

30.         this.sql = sql;  

31.     }  

32.   

33.     public int getOffset() {  

34.         return offset;  

35.     }  

36.   

37.     public void setOffset(int offset) {  

38.         this.offset = offset;  

39.     }  

40.   

41.     public int getMax() {  

42.         return max;  

43.     }  

44.   

45.     public void setMax(int max) {  

46.         this.max = max;  

47.     }  

48.   

49. } 

 

 

 

 

 

 

 

 

 

 

 

 

 

数据访问层的数据查询代码

 

1. public List<UserInfo> getUserInfoForPage(int offset, int max) {  

2.         List<UserInfo> userInfos = new ArrayList<UserInfo>();  

3.         try {  

4.             userInfos = IbatisUtil.getSqlMapClient().queryForList("queryUserListForPage",  

5.                     new PageInfo(offset, max).getSql());  

6.         } catch (SQLException e) {  

7.             e.printStackTrace();  

8.         }  

9.         return userInfos;  

10.     } 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值