ibatis 分页(转)
=======分页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> ");
} else {
str.append("<a href=\"#\">首页</a> ");
}
if (curPage > 1) {
str.append(
"<a href=\"#\" οnclick='document.forms(0).pages.value=" +prev + ";document.forms(0).submit();'>上页</a> ");
} else {
str.append("<a href=\"#\">上页</a> ");
}
if (curPage < totalPage) {
str.append(
"<a href=\"#\" οnclick='document.forms(0).pages.value=" +next + ";document.forms(0).submit();'>下页</a> ");
} else {
str.append("<a href=\"#\" >下页</a> ");
}
if (totalPage > 1 && curPage != totalPage) {
str.append(
"<a href=\"#\" οnclick='document.forms(0).pages.value=" +totalPage + ";document.forms(0).submit();'>末页</a> ");
} else {
str.append("<a href=\"#\" >末页</a> ");
}
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 分页(转)相关推荐
- mysql ibatis 分页_MyBatis怎样实现MySQL动态分页?
/** * 模糊查询(分页) * * @project apqp * @author liud JIRA:APQP-23 * @date 2013-04-16 * @param flow * @par ...
- ibatis入门教程
1.本文通过几个简单的示例,实现ibatis的增删改查的功能. 2.构建数据库表,contact表,建表语句如下:(使用的是mysql数据库) contact表: drop table if exis ...
- Spring Batch(三) 详细介绍Job Launcher、ItemReader、ItemProcessor、ItemWriter各个实现类和用途
内容来自<Spring Batch 批处理框架>,作者:刘相. 1.JobLauncher JobLauncher(作业调度器)是SpringBatch框架提供的运行Job的能力.用过给定 ...
- 3.3程序设计框架架构基础相关知识点-技术
0.1请你谈谈SSH整合: SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作 ...
- Spring Batch之读数据库(三十一)
一.Spring Batch框架对数据库的支持 Spring Batch框架对数据库提供了非常好的支持,包括基于JDBC和ORM(Object-Relational Mapping)的读取方式:基于游 ...
- oracle分页置顶,[置顶] ibatis查询oracle分页
开发采用spring+struts+ibatis+extjs,数据库用oracle ibtais配置分页 模糊查询 Java代码 bmzdm LIKE '%$objCondition.bmzdm$%' ...
- [置顶] ibatis做分页
1 到处都是大数据量操作的时候 不适用HIBERNATE 2 用存储过程来实现业务逻辑的 不适合用HIBERNATE 3 数据库关系复杂 或者遗留数据库不适合HIBERNATE 4 团队没有至少一个精 ...
- ibatis mysql分页查询语句_简单实现ibatis的物理分页
一直以来ibatis的分页都是通过滚动ResultSet实现的,应该算是逻辑分页吧.逻辑分页虽然能很干净地独立于特定数据库,但效率在多数情况下不及特定数据库支持的物理分页,而hibernate的分页则 ...
- Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现
pager-taglib分页開始~ 查了好多关于分页的技术,终于选定下面方法实现~ 1.首先下载jar包:pager-taglib.jar,pager-taglib.jar放在WEB-INF/lib文 ...
- java分页 Struts+Ibatis
首先写一个分页类: package com.zc.book.util; import java.util.List; public class PageUtil { private int pageS ...
最新文章
- 项目视频光盘项目中所学概览-html5+批处理+bat转exe
- nagios 邮件报警脚本
- java面试题 A 2 2 2_JAVA面试题(2)
- c语言是字符串123变112233,Objective C学习第四节:OC里面的字符串和数值
- Java 8 - 04 类型检查、类型推断以及限制
- Spring Bean引用例子
- 2020 年 4 月编程语言排行榜:C 语言重回王者?
- 网络人的未来分享讲义_酒品看人品,未来酱分享饮酒识人技巧!谁是你值得深交的人?...
- 恩格列净治疗心衰获得FDA快速通道资格
- 【数据结构与算法】排序算法总结
- Android 检查权限总是 PERMISSION_GRANTED
- 卧槽!​微信电脑版可以浏览朋友圈了!!
- hihoCoder 1039:字符消除(字符串处理)
- java.lang.OutOfMemoryError
- git 不显示远端分支问题
- 4G Cat.1跟通常我们说的4G有什么区别
- android Ble4.0蓝牙开发之搜索慢、startLeScan()过时,6.0以上不需要定位权限也能快速搜索到蓝牙设备
- smb.conf 中文man页面(1)
- 陪我家小朋友过六一!
- 同一账号同一时间在不同地点登陆实现登陆剔出功能