开发环境: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 > 共 <%=pageM.getTotalPages() %> 页 </font>
<font > 当前第</font>
<font color="#FF0000"><%=pageM.getPageNo() %></font>
<font >页</font>
</div>
</td>
<td>
<div align="right">
<input name="btnTopPage" type="button"
value="|<<" onClick="topPage()" title="首页">
<input name="btnPrePage" type="button"
value="<" onClick="prePage()" title="前一页">
<input name="btnNextPage" type="button"
value=">" onClick="nextPage()" title="下一页">
<input name="btnLastPage" type="button"
value=">>|" onClick="lastPage()" title="末页">
</div>
</td>
</tr>
</table>
</body>
</html>
浏览器效果:
分享,快乐,成长
转载请注明出处:http://blog.csdn.net/fansy1990