jsp数据库分页技术
2011-01-13 12:25
351 查看
今天下来,湛江格斗联盟系统做完一半有多了。用户管理中心明天再收拾一下手尾就完成了,管理员中心和用户管理中心差不多的,只是两者管理的权限不一样,把用户管理中心的代码改一下就可以。所以这个系统很快可以完成,相信很快就有时间看张孝祥老师的Java 基础加强视频了。然后再系统的复习一遍Java,做好入学考核的准备!
我今天做了会员管理页面,我觉得分页技术比较关键。
以前用PHP做聊天系统时(只做过很小型的聊天系统
),分页都是用select * from myTable order by id desc limit $offset,$pagesize 语句在数据库中选择每一页的数据,然后再页面里显示的;不过这招在SQL server里是不管用的。这次我得突破这个约束,按老师说的,先把所有符合条件的数据查询出来,再在结果集中取得每页数据。经过N次的调试,数据分页显示成功!把代码贴出来,
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="page.Show"%>
<%@ page import="db.Conn"%>
<%@ page import="java.sql.*" %>
<%request.setCharacterEncoding("gb2312");%>
<%
Show show = new Show();
Conn conn= new Conn();
ResultSet rs;
String sqlstr ="select * from user";
String strPage;//接收页码
String mychose; //存储复选框是否全选信息
rs=conn.getRs(sqlstr);
//分页
//每页显示数目,总页数,记录总数,当前页,前一页,下一页,
int pageSize,pageCount,rowCount,currPage,prePage,nextPage;
pageSize=10;
strPage = request.getParameter("currPage");
mychose = request.getParameter("chose");
if(strPage==null){
currPage=1;
}else{
//如果传入参数不为空,把该参数转换为整型
currPage=Integer.parseInt(strPage);
}
rs.last();
rowCount =rs.getRow();
pageCount =(rowCount+pageSize-1)/pageSize;
%>
<form method="get" action="dele_user.jsp">
<table border="1">
<tr>
<th>选择</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>年龄</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<%
if(pageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((currPage-1) * pageSize + 1);
//显示数据
int i = 0,k=1;
int user_id;
String user_name,user_pass,user_sex,user_age,user_email;
while(i<pageSize&& !rs.isAfterLast()){
user_id =rs.getInt(1);
user_name=rs.getString(2);
user_pass=rs.getString(3);
user_sex=rs.getString(4);
user_age=rs.getString(5);
user_email=rs.getString(6);
%>
<tr>
<td><input type="checkBox" name="chose" value="<%=user_id %>"<%=mychose %>/></td>
<td><%=user_name %></td>
<td><%=user_pass %></td>
<td><%=user_sex %></td>
<td><%=user_age%></td>
<td><%=user_email %></td>
<td><a href="dele_user.jsp?dele_id=<%=user_id %>" onclick="return window.confirm('此动作不可恢复,确定删除该会员吗')">删除</a></td>
</tr>
<%
i++;
rs.next();
}
%>
<tr>
<td colspan ="7"><%="共"+pageCount+"页" %>
<%if(currPage>1){%>
<a href="mana_user.jsp?currPage=<%=currPage-1%>">上一页</a><%}%>
<%while(k<=pageCount){%>
<a href="mana_user.jsp?currPage=<%=k%>"><%=k %></a>
<% k++;}%>
<%if(currPage<pageCount){%><a href="mana_user.jsp?currPage=<%=currPage+1%>">下一页</a>
<%="当前第"+currPage+"页" %>
</td>
</tr>
<%
}
}
%>
<tr>
<td colspan="2"><a href="mana_user.jsp?chose=checked">全选</a>
<td colspan="2"><a href="mana_user.jsp?chose=''">全不选</a>
<td colspan="3"><input type="submit" value="删除选中项" onclick="return window.confirm('此动作不可恢复,确定删除所选会员吗?')"/>
</td>
</tr>
</table>
</form>
这个是管理页面,如果只把会员列出来,而没有操作的话。和不列出来没神马区别,所以至少得让管理员可以对会员做删除操作。所以在每个会员信息后面加了一项“删除”连接:
<td><a href="dele_user.jsp?dele_id=<%=user_id %>" onclick="return window.confirm('此动作不可恢复,确定删除该会员吗')">删除</a></td>
如果我想批量删除会员呢?没错,建立一个表单,每个会员添加一个复选框。关键是怎样点击“全选”按钮每个复选框都变成选中状态。javascript 应该可以完成这项工作,但考虑到javascript 不稳定,而且调试很麻烦。所以决定用Java实现:
首先使用户点击“全选”选项时,向本页面提交一个参数:<a href="mana_user.jsp?chose=checked">全选</a>这个参数为chose.参数值为checked;然后接收这个参数值:String mychose = request.getParameter("chose");页面接收到这个chose 的值后,把它作为checkbox 的一个属性 <td><input type="checkBox" name="chose" value="<%=user_id %>"<%=mychose %>/></td>这样当用户点击全选时,上面的语句实际就等价于 <td><input type="checkBox" name="chose" value="<%=user_id %>checked />这样当前的每项都被选中了。
为避免误删,在用户点击删除选项时,还得确认一下用户是否真的要删除。用如下javascript 语句实现:
<input type="submit" value="删除选中项" onclick="return window.confirm('此动作不可恢复,确定删除所选会员吗?')"/>
这样就OK了!
好了,现在很晚了。又到了学校拉闸限电的时间啦。明天再继续写吧。晚安!
我今天做了会员管理页面,我觉得分页技术比较关键。
以前用PHP做聊天系统时(只做过很小型的聊天系统
),分页都是用select * from myTable order by id desc limit $offset,$pagesize 语句在数据库中选择每一页的数据,然后再页面里显示的;不过这招在SQL server里是不管用的。这次我得突破这个约束,按老师说的,先把所有符合条件的数据查询出来,再在结果集中取得每页数据。经过N次的调试,数据分页显示成功!把代码贴出来,
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="page.Show"%>
<%@ page import="db.Conn"%>
<%@ page import="java.sql.*" %>
<%request.setCharacterEncoding("gb2312");%>
<%
Show show = new Show();
Conn conn= new Conn();
ResultSet rs;
String sqlstr ="select * from user";
String strPage;//接收页码
String mychose; //存储复选框是否全选信息
rs=conn.getRs(sqlstr);
//分页
//每页显示数目,总页数,记录总数,当前页,前一页,下一页,
int pageSize,pageCount,rowCount,currPage,prePage,nextPage;
pageSize=10;
strPage = request.getParameter("currPage");
mychose = request.getParameter("chose");
if(strPage==null){
currPage=1;
}else{
//如果传入参数不为空,把该参数转换为整型
currPage=Integer.parseInt(strPage);
}
rs.last();
rowCount =rs.getRow();
pageCount =(rowCount+pageSize-1)/pageSize;
%>
<form method="get" action="dele_user.jsp">
<table border="1">
<tr>
<th>选择</th>
<th>用户名</th>
<th>密码</th>
<th>性别</th>
<th>年龄</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<%
if(pageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((currPage-1) * pageSize + 1);
//显示数据
int i = 0,k=1;
int user_id;
String user_name,user_pass,user_sex,user_age,user_email;
while(i<pageSize&& !rs.isAfterLast()){
user_id =rs.getInt(1);
user_name=rs.getString(2);
user_pass=rs.getString(3);
user_sex=rs.getString(4);
user_age=rs.getString(5);
user_email=rs.getString(6);
%>
<tr>
<td><input type="checkBox" name="chose" value="<%=user_id %>"<%=mychose %>/></td>
<td><%=user_name %></td>
<td><%=user_pass %></td>
<td><%=user_sex %></td>
<td><%=user_age%></td>
<td><%=user_email %></td>
<td><a href="dele_user.jsp?dele_id=<%=user_id %>" onclick="return window.confirm('此动作不可恢复,确定删除该会员吗')">删除</a></td>
</tr>
<%
i++;
rs.next();
}
%>
<tr>
<td colspan ="7"><%="共"+pageCount+"页" %>
<%if(currPage>1){%>
<a href="mana_user.jsp?currPage=<%=currPage-1%>">上一页</a><%}%>
<%while(k<=pageCount){%>
<a href="mana_user.jsp?currPage=<%=k%>"><%=k %></a>
<% k++;}%>
<%if(currPage<pageCount){%><a href="mana_user.jsp?currPage=<%=currPage+1%>">下一页</a>
<%="当前第"+currPage+"页" %>
</td>
</tr>
<%
}
}
%>
<tr>
<td colspan="2"><a href="mana_user.jsp?chose=checked">全选</a>
<td colspan="2"><a href="mana_user.jsp?chose=''">全不选</a>
<td colspan="3"><input type="submit" value="删除选中项" onclick="return window.confirm('此动作不可恢复,确定删除所选会员吗?')"/>
</td>
</tr>
</table>
</form>
这个是管理页面,如果只把会员列出来,而没有操作的话。和不列出来没神马区别,所以至少得让管理员可以对会员做删除操作。所以在每个会员信息后面加了一项“删除”连接:
<td><a href="dele_user.jsp?dele_id=<%=user_id %>" onclick="return window.confirm('此动作不可恢复,确定删除该会员吗')">删除</a></td>
如果我想批量删除会员呢?没错,建立一个表单,每个会员添加一个复选框。关键是怎样点击“全选”按钮每个复选框都变成选中状态。javascript 应该可以完成这项工作,但考虑到javascript 不稳定,而且调试很麻烦。所以决定用Java实现:
首先使用户点击“全选”选项时,向本页面提交一个参数:<a href="mana_user.jsp?chose=checked">全选</a>这个参数为chose.参数值为checked;然后接收这个参数值:String mychose = request.getParameter("chose");页面接收到这个chose 的值后,把它作为checkbox 的一个属性 <td><input type="checkBox" name="chose" value="<%=user_id %>"<%=mychose %>/></td>这样当用户点击全选时,上面的语句实际就等价于 <td><input type="checkBox" name="chose" value="<%=user_id %>checked />这样当前的每项都被选中了。
为避免误删,在用户点击删除选项时,还得确认一下用户是否真的要删除。用如下javascript 语句实现:
<input type="submit" value="删除选中项" onclick="return window.confirm('此动作不可恢复,确定删除所选会员吗?')"/>
这样就OK了!
好了,现在很晚了。又到了学校拉闸限电的时间啦。明天再继续写吧。晚安!
相关文章推荐
- 目前最好的JSP分页技术(考虑到数据库移植,并修正过效率)
- jsp中利用分页技术显示数据库内容
- jsp读取数据库实现分页技术简析
- jsp读取数据库实现分页技术简析
- JSP 分页技术 原创,测试OK,无论数据库有多少数据,可以尽情的翻!
- 目前最好的JSP分页技术(考虑到数据库移植,并修正过效率)
- jsp的分页技术与访问数据库的汉字处理
- JSP分页技术实现
- 眼下最好的JSP分页技术
- Java web分页技术(jsp+servlet+Dao+javabean)
- Java课程设计常见技术问题(程序部署、数据库、JSP)
- JSP数据库操数据分页显示
- jsp中数据库编程技术
- jsp+oracle实现数据库内容以表格形式在前台显示(包含分页)
- JSP分页技术实现
- JSP中连接数据库的技术
- JSP页面中使用分页技术(整理)
- JSP中的分页技术源码(MYSQL数据库)
- 目前最好的JSP分页技术
- JSP数据库操作数据分页显示