国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

如何通用數據庫jsp分頁查詢模塊

2024-09-05 00:17:25
字體:
來源:轉載
供稿:網友

這個功能一共創建了兩個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>條&nbsp;<%=pageSize%>條/頁&nbsp;&nbsp;第<font color=red><%=showPage%></font>頁/共<font color=red><%=pages.getPageCount()%></font>頁&nbsp;&nbsp;[<a href="word_list_javabean.jsp?showPage=1" target="_self">首頁</a>]&nbsp;
<%
//判斷“上一頁”鏈接是否要顯示
if(showPage>1){
%>
[<a href="word_list_javabean.jsp?showPage=<%=showPage-1%>" target="_self">上一頁</a>]&nbsp;
<%
}
else{
%>
[上一頁]&nbsp;
<%
}
//判斷“下一頁”鏈接是否顯示
if(showPage<pages.getPageCount())
{
%>
[<a href="word_list_javabean.jsp?showPage=<%=showPage+1%>" target="_self">下一頁</a>]&nbsp;
<%
}
else{
%>
[下一頁]&nbsp;
<%
}
%>

[<a href="word_list_javabean.jsp?showPage=<%=pages.getPageCount()%>" target="_self">尾頁</a>]&nbsp;轉到
<select name="select">
<%
for(int x=1;x<=pages.getPageCount();x++)
{
%>
<option value="<%=x%>"
<%
if(showPage==x){
out.println("selected");
}
%> ><%=x%></option>
<%
}
%>
</select>
頁&nbsp;&nbsp;&nbsp;
<input type="submit" name="go" value="提交" />
</p>
</form>
</p>
</div>
</body>
</html>

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张掖市| 磐石市| 井冈山市| 蛟河市| 汝阳县| 安新县| 会昌县| 胶南市| 长沙市| 綦江县| 阿巴嘎旗| 武强县| 扎兰屯市| 万全县| 玉溪市| 仪陇县| 延安市| 施甸县| 洛隆县| 繁昌县| 若尔盖县| 突泉县| 广州市| 溆浦县| 锡林郭勒盟| 湟源县| 温泉县| 苏州市| 商河县| 张北县| 大邑县| 监利县| 华安县| 汽车| 稷山县| 阳朔县| 安仁县| 九台市| 保靖县| 乐平市| 鄢陵县|