81,092
社区成员
发帖
与我相关
我的任务
分享
package com.tool;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
public class PaginationBean {
private int pageSize=10;//每页显示的记录条数
private int pageNum=0;//总页数
private int pageId=1;//当前页码
private int size=0;//总记录条数
public ArrayList pagination(int pageId,String sql){
this.pageId=pageId;//把当前页码赋给属性pageId
ResultSet rs=null;//保存查询结果集
DBConnection dbcn=new DBConnection();
dbcn.connect();//取得连接
rs=dbcn.select(sql);//执行查询
try {
rs.last();//将记录移到最后一行
size=rs.getRow();//取得行号,其实就是总记录数
if(size%pageSize==0){
this.pageNum=size/pageSize;//计算总页数
}else{
this.pageNum=size/pageSize+1;//计算总页数
}
rs.beforeFirst(); //让记录游标返回第一条记录之前的位置
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
if(this.pageId<1)this.pageId=1;//如果当前页码pageId小于1,就让它等于1
if(this.pageId>this.pageNum)this.pageId=this.pageNum;//如果当前页码pageId大于总页码pageNum,则让它等于总页码
for(int i=0;i<(this.pageId-1)*pageSize;i++){//此循环的功能用于将记录定位在当前页pageId之前的那条记录
try {
rs.next();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
ArrayList allData=new ArrayList();//allData集合用于保存当前页的数据
try {
ResultSetMetaData rsmd=rs.getMetaData();//rsmd是代表了列信息的一个对象
int colnum=rsmd.getColumnCount();//取得列数
for(int j=0;j<pageSize;j++){//此循环用于取得当前页的数据
ArrayList al=new ArrayList();//保存当前的行的数据
if(!rs.next()){
break;//如果每页显示4条,但记录只剩下3条,当再没有记录时,用break结束循环
}
for(int n=1;n<=colnum;n++){//往当前行al集合里添加行数据,即将这行的每一列数据添加进集合
al.add(rs.getString(n));
}
allData.add(al);//将每一行的数据又存进:保存所有的行的数据的集合里面
}
dbcn.connectionClose();
return allData;//把总数据返回
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
public int getPageNum(){
return this.pageNum;
}
public int getSize(){
return this.size;
}
public int getPageId() {
return pageId;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@page import="com.javabean.UserInfo"%>
<%@page import="com.tool.PaginationBean"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="add.jsp">增加</a>
<%
PaginationBean pnb=(PaginationBean)session.getAttribute("paginationbean");
List list=(List)session.getAttribute("listall");
if(list!=null&&list.size()>0){
%>
<table>
<tr><td>id</td><td>name</td><td>操作</td></tr>
<%
for(int i=0;i<list.size();i++){
List list2222=(List)list.get(i);
%>
<tr>
<td><%=list2222.get(0) %></td><td><%=list2222.get(1) %></td>
<td>
<a href="UserInfoAction.do?method=preupdate&id=<%=list2222.get(0) %>">编辑</a>
<a href="UserInfoAction.do?method=delete&id=<%=list2222.get(0) %>">删除</a>
</td>
</tr>
<%} %>
<tr ><td colspan=3 >
<a href="UserInfoAction.do?method=list&pageId=1">首页</a>
<a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageId()-1 %>">上一页</a>
<a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageId()+1 %>">下一页</a>
<a href="UserInfoAction.do?method=list&pageId=<%=pnb.getPageNum() %>">尾页</a>
一共有<%=pnb.getSize() %>条留言,当前页为<%=pnb.getPageId() %>/<%=pnb.getPageNum() %>页<br><br><br><br><br><br><br></td></tr>
</table>
<%} %>
</body>
</html>
package com.tool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
private final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String DBURL="jdbc:sqlserver://127.0.0.1:1439;DatabaseName=zyx";
private final String DBUSER="sa";
private final String DBPASSWORD="123456";
Connection conn=null;
ResultSet rs=null;
Statement st=null;
public void connect(){
try
{
Class.forName(DBDRIVER) ;
this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e)
{e.printStackTrace();}
}
public ResultSet select(String sql){
try {
if(st==null){
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
rs=st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
public int executeUpdate(String sql){
int i=0;
try {
if(st==null){
st = conn.createStatement();
}
i=st.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return i;
}
public void connectionClose(){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(st!=null){
st.close();
st=null;
}
if(conn!=null){
conn.close();
conn=null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}