`
shaohan126448
  • 浏览: 112762 次
  • 来自: 北京
社区版块
存档分类
最新评论

通用数据库jsp分页查询模块

阅读更多

这个功能一共创建了两个javabean组件和一个JSp页面显示分页页面,第一个是处理以数据库连接的javabean,第一个javabean是处理分页查询结果的代码,第三个jsp是调用第二个javabean,显示分页查询结果!
//下面是连接mySQL数据库的一个javabean的代码(可以更改下面的数据库,不影响代码的执行):

package data;
import java.sql.*;

public class LoginData{
Connection conn=null;
public LoginData(){
this.connect();
}

public Connection getConn(){
return this.conn;
}
public boolean connect(){
try{
//使用JDBC桥创建数据库连接
Class.forName("org.gjt.mm.mysql.Driver").newInstance();

//使用DriverManager类的getConnection()方法建立连接
//第一个参数定义用户名,第二个参数定义密码
this.conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/logindemo?useUnicode=true&characterEncoding=gb2312","root","123456");
}catch(Exception ex){
ex.printStackTrace();
return false;
}
return true;
}
} 

 

//分页查询处理javabean

 

package split;
import java.sql.*;
import java.util.*;
import data.LoginData;
public class splitPage
{
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private ResultSetMetaData rsmd=null;
//sql 查询语句
private String sqlStr;
//总纪录数目
public int rowCount;
//所分得逻辑页数
public int pageCount;
//每页显示的纪录数目
private int pageSize;
//定义表的列数目
private int columnCount;
public void initialize(String sqlStr,int pageSize)
{
this.sqlStr=sqlStr;
this.pageSize=pageSize;
try
{
LoginData loginData=new data.LoginData();
this.conn=loginData.getConn();
this.stmt=this.conn.createStatement();
this.rs=this.stmt.executeQuery(this.sqlStr);
this.rsmd=this.rs.getMetaData();
if(this.rs!=null)
{
this.rs.last();
this.rowCount=this.rs.getRow();
this.rs.first();
this.columnCount=this.rsmd.getColumnCount();
this.pageCount=(this.rowCount/this.pageSize==0)?(this.rowCount/this.pageSize):(this.rowCount/this.pageSize+1);
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
public Vector getPage(int ipage)
{
Vector vData=new Vector();
int n=ipage;
int m=0;
m=(n-1)*this.pageSize+1;
try
{
if(this.rs!=null)
{
if(n!=1)
{
this.rs.absolute(m);
}
for(int i=0;i<this.pageSize;i++)
{
String[] sData=new String[this.columnCount];
for(int j=0;j<this.columnCount;j++)
{
sData[j]=this.rs.getString(j+1);
}
if(sData==null)
{
break;
}
vData.addElement(sData);
this.rs.next();
}
this.rs.close();
this.stmt.close();
this.conn.close();
}
}catch(Exception ex)
{
ex.printStackTrace();
}
return vData;
}

//获得页面总数
public int getPageCount()
{
return this.pageCount;
}
//获得数据表中总纪录数
public int getRowCount()
{
return this.rowCount;
}
}

 

 

//jsp显示分页查询页面

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="data.*"%>
<jsp:useBean id="pages" scope="page" class="split.splitPage" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%!
//显示每页的纪录数
int pageSize=10;
String sqlStr="";
//当前页
int showPage=1;
%>

<%
sqlStr="select * from userinfo order by id ";
String strPage=null;
//获得跳转到的页面
pages.initialize(sqlStr,pageSize);
strPage=request.getParameter("showPage");
if(strPage==null){
showPage=1;
}else{
try{
showPage=Integer.parseInt(strPage);
}catch(NumberFormatException ex){
showPage=1;
}
if(showPage<1){
showPage=1;
}
if(showPage>pages.getPageCount()){
showPage=pages.getPageCount();
}
}
//取得要显示的数据集合
Vector vData=pages.getPage(showPage);
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>分页显示</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<h1 align=center>个人基本信息</h1>
<div align=center>
<table border="1" cellspacing="0" cellpadding="0" width="80%">
<tr>
<th width="20%">编号</th>
<th width="40%">学号</th>
<th width="40%">姓名</th>
</tr>
<%
for(int i=0;i<vData.size();i++)
{
//显示数据数
String[] sData=(String[])vData.get(i);
%>
<tr>
<td><%=sData[0]%></td>
<td><%=sData[1]%></td>
<td><%=sData[2]%></td>
</tr>
<%
}
%>
</table>
<p>
<form action="word_list_javabean.jsp" method="get" target="_self">
<p><font color=red><%=pages.getRowCount()%></font>条 <%=pageSize%>条/页  第<font color=red><%=showPage%></font>页/共<font color=red><%=pages.getPageCount()%></font>页 &nbsp;[<a href="word_list_javabean.jsp?showPage=1" target="_self">首页</a><%
//判断“上一页”链接是否要显示
if(showPage>1){
%>
[<a href="word_list_javabean.jsp?showPage=<%=showPage-1%>" target="_self">上一页</a><%
}
else{
%>
[上一页] 
<%
}
//判断“下一页”链接是否显示
if(showPage<pages.getPageCount())
{
%>
[<a href="word_list_javabean.jsp?showPage=<%=showPage+1%>" target="_self">下一页</a><%
}
else{
%>
[下一页] 
<%
}
%>

[<a href="word_list_javabean.jsp?showPage=<%=pages.getPageCount()%>" target="_self">尾页</a>] 转到
<select name="select">
<%
for(int x=1;x<=pages.getPageCount();x++)
{
%>
<option value="<%=x%>"
<%
if(showPage==x){
out.println("selected");
}
%> ><%=x%></option>
<%
}
%>
</select>
页   
<input type="submit" name="go" value="提交" />
</p>
</form>
</p>
</div>
</body>
</htm>
分享到:
评论

相关推荐

    JSP数据库分页模块

    通用的分页模块!下了你可以试试,不行的话加我Q:522134398

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    10.4.1 通用模块及首页实现 245 10.4.2 用户管理模块 249 10.4.3 实现宠物信息查询操作 252 10.4.4 实现客户信息修改操作 257 10.4.5 实现宠物诊断信息添加操作 261 10.4.6 实现兽医信息浏览操作 265 第11章 Web...

    JAVA WEB典型模块与项目实战大全

    第5章 验证模块(jsp+servlet+jsvaildation)  5.1 表单基础  5.2 客户端表单验证框架  5.3 服务器端验证  5.4 实现图形验证码  5.5 避免重复提交功能  5.6 缩略加水印图像  5.7 小结  第6章 网络...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    Spring面试题

    4、 分页查询 5、 统计函数 6. 如何优化Hibernate? 1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多...

    Spring.3.x企业应用开发实战(完整版).part2

    12.5.3 分页查询接口设计 12.6 小结 第4篇 业务层及Web层技术 第13章 任务调度和异步执行器 13.1 任务调度概述 13.2 Quartz快速进阶 13.2.1 Quartz基础结构 13.2.2 使用SimpleTrigger 13.2.3 使用CronTrigger ...

    Spring3.x企业应用开发实战(完整版) part1

    12.5.3 分页查询接口设计 12.6 小结 第4篇 业务层及Web层技术 第13章 任务调度和异步执行器 13.1 任务调度概述 13.2 Quartz快速进阶 13.2.1 Quartz基础结构 13.2.2 使用SimpleTrigger 13.2.3 使用CronTrigger ...

    GoodProject Maven Webapp.zip

    5、场景对话的功能介绍:通过场景对话模块,开发者可快速搭建满足于不同场景下业务需求的多轮上下文对话,并实现对话式交互同自有产品业务、数据库以及第三方数据源的对接,实现产品服务体验升级。[2] 6、NLP知识库...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    单点登录源码

    基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`项目所有后台系统都是使用该模块界面作为前端展示。 &gt; zheng-ui 各个子系统前台thymeleaf模板,前端资源模块,使用nginx代理,实现动静...

Global site tag (gtag.js) - Google Analytics