java web 分页项目

开发环境:myeclipse、jdk1.7、mysql;

对于mysql数据库中的表来说,可以增加一个自增字段,然后根据这个字段来进行按页的提取数据,这样操作应该比oracle使用rownum来的简单点。

数据库表:

CREATE TABLE `table_name` (
  `id` bigint(20) NOT NULL,
  `city_no` varchar(255) DEFAULT NULL,
  `mp_id` varchar(255) DEFAULT NULL,
  `data_dt` datetime DEFAULT NULL,
  `obj_id` varchar(255) DEFAULT NULL,
  `day_in_e` double DEFAULT NULL,
  `day_out_e` double DEFAULT NULL,
  `line_loss` double DEFAULT NULL,
  `county_no` bigint(20) DEFAULT NULL,
  `line_id` bigint(20) DEFAULT NULL,
  `line_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `IDX_IEP_LLP_01` (`mp_id`,`data_dt`),
  KEY `IDX_IEP_LLP_02` (`data_dt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

分页封装类:

package model;

import java.util.List;

public class PageModel {
	private List list;
	private int pageSize;
	private int totalPages;
	public int getTotalPages() {
		return (totalRecords+pageSize-1)/pageSize;
	}
	public void setTotalPages(){
		totalPages=(totalRecords+pageSize-1)/pageSize;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getPageNo() {
		return pageNo; 
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	private int pageNo;
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getTotalRecords() {
		return totalRecords;
	}
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}
	private int totalRecords;
	
	/**
	 * 获取首页
	 * @return
	 */
	public int getTopPageNo(){
		return 1;
	}
	/**
	 * 获取前一页
	 * @return
	 */
	public int getPrePageNo(){
		if(pageNo<=1){
			return 1;
		}
		return pageNo-1;
	}
	/**
	 * 获取后一页
	 * @return
	 */
	public int getNextPageNo(){
		if(pageNo>=totalPages){
			return totalPages;
		}
		return pageNo+1;
	}
	/**
	 * 获取最后一页
	 * @return
	 */
	public int getLastPageNo(){
		return totalPages;
	}
}
调用分页的jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="java.text.*" %>
<%@ page import ="manager.*"%>
<%@ page import ="model.*" %>


 <!-- 获取数据集 -->
 <%
 	int pageNo=1;
 	int pageSize=5;
 	String pageNoString = request.getParameter("pageNo");
	if (pageNoString != null) {
		pageNo = Integer.parseInt(pageNoString);
	}
 	PageModel pageM=LineManager.findAllLine(pageNo,pageSize);
 	pageM.setPageNo(pageNo);
 	pageM.setPageSize(pageSize);
 	pageM.setTotalPages();

 %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <script type="text/javascript">  ...</script>
 </head><body>
 <h1 align="center"> 分页演示</h1>
 <br>
 <br>
 <br>
 <table width="90%" border="1" align="center" cellspacing="0" cellpadding="0">
	 	<tr bgcolor="gray">
	 		<th>
	 			<input type="checkbox" name="selectFlag" >
	 		</th>
	  	<th>ID</th>
	  	<th>线路ID</th>
	  <!-- 	<th>线路名称</th> -->
	  	<th>城市ID</th>
	  	<th>乡镇ID</th>
	  	<th>计量点ID</th>
	  	<th>日期</th>
	  	<th>输入电量</th>
	  	<th>输出电量</th>
	  	<th>线损率</th>
	  	  	
	 	</tr>
	 	<%
	 		List lineList=pageM.getList();
	 		for(int i=0;i<lineList.size();i++){
	 			Line line=(Line)lineList.get(i);
	 	 %>
	 	<tr>
	 		<td>
	 			<input type="checkbox" name="selectFlag" value=<%=line.getId() %>>
	 		</td>
	  	<td><%=line.getId() %></td>
	  	<td><%=line.getLine_id() %></td>
	  <!-- 	<td><%=line.getLine_name() %></td>  -->
	  	<td><%=line.getCity_no() %></td>
	  	<td><%=line.getCounty_no() %></td>
	  	<td><%=line.getMp_id() %></td>
	  	<td><%=new SimpleDateFormat("YYYY/MM/dd HH:mm:ss").format(line.getDate_dt()) %></td>
	  	<td><%=line.getDay_in_e() %></td>
	  	<td><%=line.getDay_out_e() %></td>
	  	<td><%=line.getLine_loss() %></td>
	 	</tr>
	 	
	 	<%
	 		}
	 	 %>
	</table>
  <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
 		<tr>
 			<td>
 				<div align="left">
 					<font >&nbsp;共 &nbsp;<%=pageM.getTotalPages() %>&nbsp;页	</font>&nbsp;&nbsp;&nbsp;&nbsp;
 					<font >&nbsp;当前第</font>
 					<font color="#FF0000"><%=pageM.getPageNo() %></font>
 					<font >页</font>
 				</div>
 			</td>
 			
 			
 			<td>
 				<div align="right">
 					<input name="btnTopPage" type="button"
 					value="|&lt;&lt;" onClick="topPage()" title="首页">
 					
 					<input name="btnPrePage" type="button"
 					value="&lt;" onClick="prePage()" title="前一页">
 					
 					<input name="btnNextPage" type="button"
 					value="&gt;" onClick="nextPage()" title="下一页">
 					
 					<input name="btnLastPage" type="button"
 					value="&gt;&gt;|" onClick="lastPage()" title="末页">
 				</div>
 			</td>
 		</tr>
  </table>
 
 </body>
</html>



浏览器效果:


整个web项目可以在 http://download.csdn.net/detail/fansy1990/5562351 下载



分享,快乐,成长


转载请注明出处:http://blog.csdn.net/fansy1990




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值