=======分页BEAN========

import java.util.List;

/**
 * ibatis分页Bean
 * @author Administrator
 *
 */
public class PageUtil {

private int curPage = 0; //当前页
 private int pageSize = 0; //每页多少行
 private int endSize ; //用于not in(select top endSize id)不在多少行内
 private int totalRow ; //共多少行
 private int totalPage ; //共多少页
 
 public int getCurPage() {
  return curPage;
 }
 public void setCurPage(int curPage) {
  
  int temp = pageSize * (curPage-1);
  this.setEndSize(temp);
  this.curPage = curPage;
 }
 public int getEndSize() {
  return endSize;
 }
 public void setEndSize(int endSize) {
  this.endSize = endSize;
 }
 public int getPageSize() {
  return pageSize;
 }
 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }
 public int getTotalRow() {
  return totalRow;
 }
 public void setTotalRow(int totalRow) {
  
  totalPage = totalRow/pageSize;
  if(totalRow%pageSize > 0)
   totalPage = totalPage + 1;
  
  this.totalRow = totalRow;
 }
 public int getTotalPage(){
  
  return this.totalPage;
 }
 public String getToolsMenu() {
        StringBuffer str = new StringBuffer("");
        int next, prev;
        prev = curPage - 1;
        next = curPage + 1;

if (curPage > 1) {
            str.append(
                "<a href=\"#\" οnclick=\"document.forms(0).pages.value=1;document.forms(0).submit();\"& gt;首页</a>&nbsp;");
        } else {
            str.append("<a href=\"#\">首页</a>&nbsp;");
        }
        if (curPage > 1) {
            str.append(
                "<a href=\"#\" οnclick='document.forms(0).pages.value=" +prev + ";document.forms(0).submit();'>上页</a>&nbsp;");
        } else {
            str.append("<a href=\"#\">上页</a>&nbsp;");
        }
        if (curPage < totalPage) {
            str.append(
                "<a href=\"#\" οnclick='document.forms(0).pages.value=" +next + ";document.forms(0).submit();'>下页</a>&nbsp;");
        } else {
            str.append("<a href=\"#\" >下页</a>&nbsp;");
        }
        if (totalPage > 1 && curPage != totalPage) {
            str.append(
                "<a href=\"#\"  οnclick='document.forms(0).pages.value=" +totalPage + ";document.forms(0).submit();'>末页</a>&nbsp;&nbsp;");
        } else {
            str.append("<a href=\"#\" >末页</a>&nbsp;&nbsp;");
        }
        str.append(" 共" + totalRow + "条记录");
        str.append("  每页<SELECT size=1 name=pagesize οnchange='this.form.pages.value=1;this.form.pageSize.value=this.value;this.form.submit();'>");

if (pageSize == 3) {
            str.append("<OPTION value=3 selected>3</OPTION>");
        } else {
            str.append("<OPTION value=3>3</OPTION>");
        }

if (pageSize == 10) {
            str.append("<OPTION value=10 selected>10</OPTION>");
        } else {
            str.append("<OPTION value=10>10</OPTION>");
        }
        if (pageSize == 20) {
            str.append("<OPTION value=20 selected>20</OPTION>");
        } else {
            str.append("<OPTION value=20>20</OPTION>");
        }
        if (pageSize == 50) {
            str.append("<OPTION value=50 selected>50</OPTION>");
        } else {
            str.append("<OPTION value=50>50</OPTION>");
        }
        if (pageSize == 100) {
            str.append("<OPTION value=100 selected>100</OPTION>");
        } else {
            str.append("<OPTION value=100>100</OPTION>");
        }
        str.append("</SELECT>");
        str.append("条 分" + pageSize + "页显示 转到");
        str.append("<SELECT size=1 name=Pagelist οnchange='this.form.pages.value=this.value;this.form.submit();'>");
        for (int i = 1; i < totalPage + 1; i++) {
            if (i == curPage) {
                str.append("<OPTION value=" + i + " selected>" + i +
                           "</OPTION>");
            } else {
                str.append("<OPTION value=" + i + ">" + i + "</OPTION>");
            }
        }
        str.append("</SELECT>页");
        str.append("<INPUT type=hidden  value=" + curPage + " name=\"pages\" > ");
        str.append("<INPUT type=hidden  value=" + pageSize +
                   " name=\"pageSize\"> ");
        return str.toString();
    }

}

========配置文件=======
<typeAlias alias="leaveBill" type="com.luke.wz.kf.bean.LeaveBill"/>
 <typeAlias alias="page" type="com.luke.wz.kf.bean.PageUtil"/>
<select id="getWaitingLeaveBillByPage" resultClass="leaveBill" parameterClass="page">
  select
  <dynamic prepend="">
   <isNotEqual compareValue="0" property="pageSize" prepend="">
    top $pageSize$
   </isNotEqual>
   * from leavebill
   <isNotEqual prepend="where" compareValue="0" property="pageSize">
    id not in (select top $endSize$ id from leavebill) and state != '已归档' and state != '已完成'
   </isNotEqual>
   <isEqual prepend="where" compareValue="0" property="pageSize">
    state != '已归档' and state != '已完成'
   </isEqual>
  </dynamic>
 </select>

=======DAO method========

public List getWaitingLeaveBill(PageUtil page){
  
  List list = null;
  try {
   
   list = sqlMapClientTemplate.queryForList("getWaitingLeaveBillByPage",page);
  } catch (Exception e) {

logger.error(e.getMessage());
  }
  return list;
 }

=========具体操作=======
public ModelAndView toWaitingLeaveBillList(HttpServletRequest request, HttpServletResponse response){
  
  PageUtil page = new PageUtil();
  java.util.List list = leaveBillDao.getWaitingLeaveBill(page);
  int temp = list.size();
  if(null != request.getParameter("pageSize") && !"".equals(request.getParameter("pageSize"))){
   page.setPageSize(Integer.parseInt(request.getParameter("pageSize")));
  }else{
   
   page.setPageSize(3);
  }
  page.setTotalRow(temp); 
  if(null != request.getParameter("pages") && !"".equals(request.getParameter("pages"))){
   page.setCurPage(Integer.parseInt(request.getParameter("pages")));
  }else{
   page.setCurPage(1);
  }
  request.setAttribute("menu",page.getToolsMenu());
  request.setAttribute("waitinglist",leaveBillDao.getWaitingLeaveBill(page));
  return new ModelAndView(WAITINGLIST);
 }

这是针对MS SQL的,针对MYSQL或其它数据库的情况,改动一下配置文件即可。
来源:http://www.blogjava.net/wyz191/articles/156923.html

转载于:https://www.cnblogs.com/yuanermen/archive/2009/07/30/1535056.html

ibatis 分页(转)相关推荐

  1. mysql ibatis 分页_MyBatis怎样实现MySQL动态分页?

    /** * 模糊查询(分页) * * @project apqp * @author liud JIRA:APQP-23 * @date 2013-04-16 * @param flow * @par ...

  2. ibatis入门教程

    1.本文通过几个简单的示例,实现ibatis的增删改查的功能. 2.构建数据库表,contact表,建表语句如下:(使用的是mysql数据库) contact表: drop table if exis ...

  3. Spring Batch(三) 详细介绍Job Launcher、ItemReader、ItemProcessor、ItemWriter各个实现类和用途

    内容来自<Spring Batch 批处理框架>,作者:刘相. 1.JobLauncher JobLauncher(作业调度器)是SpringBatch框架提供的运行Job的能力.用过给定 ...

  4. 3.3程序设计框架架构基础相关知识点-技术

    0.1请你谈谈SSH整合:     SSH:     Struts(表示层)+Spring(业务层)+Hibernate(持久层)     Struts:     Struts是一个表示层框架,主要作 ...

  5. Spring Batch之读数据库(三十一)

    一.Spring Batch框架对数据库的支持 Spring Batch框架对数据库提供了非常好的支持,包括基于JDBC和ORM(Object-Relational Mapping)的读取方式:基于游 ...

  6. oracle分页置顶,[置顶]       ibatis查询oracle分页

    开发采用spring+struts+ibatis+extjs,数据库用oracle ibtais配置分页 模糊查询 Java代码 bmzdm LIKE '%$objCondition.bmzdm$%' ...

  7. [置顶]       ibatis做分页

    1 到处都是大数据量操作的时候 不适用HIBERNATE 2 用存储过程来实现业务逻辑的 不适合用HIBERNATE 3 数据库关系复杂 或者遗留数据库不适合HIBERNATE 4 团队没有至少一个精 ...

  8. ibatis mysql分页查询语句_简单实现ibatis的物理分页

    一直以来ibatis的分页都是通过滚动ResultSet实现的,应该算是逻辑分页吧.逻辑分页虽然能很干净地独立于特定数据库,但效率在多数情况下不及特定数据库支持的物理分页,而hibernate的分页则 ...

  9. Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现

    pager-taglib分页開始~ 查了好多关于分页的技术,终于选定下面方法实现~ 1.首先下载jar包:pager-taglib.jar,pager-taglib.jar放在WEB-INF/lib文 ...

  10. java分页 Struts+Ibatis

    首先写一个分页类: package com.zc.book.util; import java.util.List; public class PageUtil { private int pageS ...

最新文章

  1. 项目视频光盘项目中所学概览-html5+批处理+bat转exe
  2. nagios 邮件报警脚本
  3. java面试题 A 2 2 2_JAVA面试题(2)
  4. c语言是字符串123变112233,Objective C学习第四节:OC里面的字符串和数值
  5. Java 8 - 04 类型检查、类型推断以及限制
  6. Spring Bean引用例子
  7. 2020 年 4 月编程语言排行榜:C 语言重回王者?
  8. 网络人的未来分享讲义_酒品看人品,未来酱分享饮酒识人技巧!谁是你值得深交的人?...
  9. 恩格列净治疗心衰获得FDA快速通道资格
  10. 【数据结构与算法】排序算法总结
  11. Android 检查权限总是 PERMISSION_GRANTED
  12. 卧槽!​微信电脑版可以浏览朋友圈了!!
  13. hihoCoder 1039:字符消除(字符串处理)
  14. java.lang.OutOfMemoryError
  15. git 不显示远端分支问题
  16. 4G Cat.1跟通常我们说的4G有什么区别
  17. android Ble4.0蓝牙开发之搜索慢、startLeScan()过时,6.0以上不需要定位权限也能快速搜索到蓝牙设备
  18. smb.conf 中文man页面(1)
  19. 陪我家小朋友过六一!
  20. 同一账号同一时间在不同地点登陆实现登陆剔出功能

热门文章

  1. nagios原装配置文件
  2. Flutter开发:在Flutter Plugin中引入aar——本地maven法
  3. mysql导入hdfs参数_导入数据到HDFS
  4. 使用tcpdump抓Android网络包
  5. 1006 A+B问题
  6. BZOJ3669[NOI2014] 魔法森林
  7. http抓包实践--(六)-fiddler抓包手机
  8. Ajax学习笔记-get请求参数-4
  9. java mongodb 条件查询_java实现如下条件的mongodb查询
  10. Vue3中导入项目Eslint和TS语法检测问题解决方案