亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 用 javabean 來實現 mysql 的分頁顯示.txt

?? 給一個初學者的建議和指導之路
?? TXT
字號:
作者:jeru
email: jeru@163.net
日期:2001-1-4 17:13:10
用 javabean 來實現 MySQL 的分頁顯示

●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○  作者:劉湛      日期:2000-02-04      jeru@163.net  ●
●  http://www.cyberlabs.com/~jeru/                   ○
○  歡迎訪問爪哇人,獲取更多資料                      ●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○

今天寫了個 MySQL 分頁的 javabean,是用 MySQL 里的 LIMIT 來實現的.
sql = "SELECT * FROM Test LIMIT 5, 10";
這句話的意思就是從第五條記錄開始往下讀 10 條記錄出來,這個 bean 沒有連接數據庫的功能,
你可以使用自己的類來鏈接數據庫,當然可以用我那個寫的很爛的 dbClass.java 來連,^_^

這里給出三個程序的源代碼。
dbClass.java -- 用來連接 MySQL 數據庫。

PageQuery.java -- 重寫了 dbClass 返回的 ResultSet,使其具備分頁功能。

example.jsp -- jsp 文件,可以看到,我只用了兩行就實現了分頁的功能,當然,
sql 語句是不鼓勵直接寫在 jsp 里的,這里為了讓大家看清楚,所以這么做了。

自知水平不高,只想拋磚引玉,有什么錯漏之處還望高手指出。

=========================== example.jsp ===================================
<%@ page language="java" import="java.sql.*, dbclass.*" %>
<%@ page contentType="text/html; charset=gb2312" %>
<jsp:useBean id="pq" scope="page" class="dbclass.PageQuery" />
<html>

<body bgcolor="#8BA9C9">
<table bgcolor="#fecda9" cellspacing=0>
<% 

String query = "SELECT * FROM systempass";   // 注意這個" FROM "一定要大寫     	
ResultSet rs = pq.myQuery(query, request);
String bar = pq.PageLegend();  //讀取分頁提示欄

out.println("<tr><td colspan=2>"+bar+"</td></tr>");
out.println("<tr><td colspan=2><hr size=1 color=blue></td></tr>");
while (rs.next())  { %> 
<tr><td><%=rs.getString(9)%></td><td><%=rs.getString(10)%></td></tr>
<% } %>
</table>
</body>
</html>

=========================== PageQuery.java ===================================
package dbclass;
/**
 * PageQuery v 1.0 
 * 這個類原名叫 TViewPage ,作者 sharetop ,用 php 寫的。
 * 同事 Macro 曾用 PHP 改寫過這個類,添加了不少功能。
 * 我感覺封裝的很好,使用十分方便,使用 JSP 后,便有了
 * 想法用 JSP 來改寫,這次為了簡明起見,我省去了很多功能,
 * 盡量讓它好讀,以后有空添加更多的功能,
 *
 * Mender : 
 *	 Jeru Liu
 * Homepage : 
 *	 http://www.cyberlabs.com/~jeru/
 * Email: jeru@163.net
 *
 * 本類沒有提供連接數據庫的功能,所以需在外部打開相應的數據庫。 
 * 需在外部自定義數據顯示格式。 
 */

import java.util.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class PageQuery  {   
  
  int Offset; // 記錄偏移量 
  int Total; // 記錄總數 
  
  int MaxLine; // 記錄每頁顯示記錄數 
  ResultSet rs; // 讀出的結果 

  int TPages; // 總頁數 
  int CPages; // 當前頁數 

  String PageQuery; // 分頁顯示要傳遞的參數
  String Query;     // query 語句
  String QueryPart; // " FROM " 以后的 query 部分 
  
  String FilePath;
  
  dbClass db;	// object of dbclass
  
  //constructer do nothing
  public PageQuery() {
    // 每頁顯示十行
	MaxLine = 10;	
	db = new dbClass();	
  }  
  
  //********讀取記錄*************** 
  // 主要工作函數,根據所給的條件從表中讀取相應的記錄   

  public ResultSet myQuery(String query, HttpServletRequest req) throws SQLException { 
	
	String query_part, os;
	int begin, offset;
	
	// 截取 " FROM " 以后的 query 語句
	begin = query.indexOf(" FROM ");
	query_part = query.substring(begin, query.length()).trim();	
		
    // 計算偏移量
	os = req.getParameter("offset");
    if (os == null) Offset = 0;
	else Offset = Integer.parseInt(os);
	
	// 獲取文件名
    FilePath = req.getRequestURI(); 
	
	Query = query;
	QueryPart = query_part;	
	
	// 計算總的記錄條數
	String SQL = "SELECT Count(*) AS total " + this.QueryPart; 
    rs = db.executeQuery(SQL);	
	if (rs.next()) 
	Total = rs.getInt(1); 	

	// 設置當前頁數和總頁數
	TPages = (int)Math.ceil((double)this.Total/this.MaxLine); 
    CPages = (int)Math.floor((double)Offset/this.MaxLine+1); 

	// 根據條件判斷,取出所需記錄
	if (Total > 0) { 
	  SQL = Query + " LIMIT " + Offset + " , " + MaxLine; 
	  rs = db.executeQuery(SQL); 	  
	}	
	return rs; 
  }  
 
  // 顯示總頁數
  public int getTotalPages() {	
	return TPages;
  }

  //顯示當前所在頁數
  public int getCurrenPages() {      	
	return CPages;
  } 

  //**********顯示翻頁提示欄*************  
  // 顯示首頁、下頁、上頁、尾頁
  // 你可以改成你喜歡的樣式
  public String PageLegend() {    

	String str = "";	
	int first, next, prev, last;
	first = 0; 
	next = Offset + MaxLine; 
	prev = Offset - MaxLine; 
	last = (this.TPages - 1) * MaxLine; 
		
	if(Offset >= MaxLine) 
	  str +=  " <A href=" + FilePath + "?offset=" + first + ">首頁</A> "; 
	else str += " 首頁 ";
	if(prev >= 0) 
	  str +=  " <A href=" + FilePath + "?offset=" + prev + ">前頁</A> "; 
	else str += " 前頁 ";
	if(next < Total) 
	  str +=  " <A href=" + FilePath + "?offset=" + next + ">后頁</A> "; 
	else str += " 后頁 ";
	if(TPages != 0 && CPages < TPages) 
	  str +=  " <A href=" + FilePath + "?offset=" + last + ">尾頁</A>"; 
	else str += " 尾頁 ";

	str += " 頁次:" + getCurrenPages() + "/" + getTotalPages() + "頁 ";
	str += MaxLine + "條/頁 " + "共" + Total + "條";
	return str;
  }
}

=========================== dbClass.java ===================================
/**
 * a class use to connect the MySQL database and do some query
 * use mm.MySQL.Drive 
 * Jeru Liu ,November 2, 2000 , ver - 1.1
 *
 */

package dbclass;
import java.sql.*;

public class dbClass  {
    
  // public: connection parameters 
  String dbName = "Kernel"; 
  String Login = "root";
  String Password = "MySQL";  
  
  String DBDriver = "org.gjt.mm.MySQL.Driver";
  String ConnStr = "jdbc:MySQL://localhost/"+dbName+"?user="+Login+";password="+Password;    
  Connection con = null;  
  Statement stmt = null;
  ResultSet rs = null;		
  ResultSetMetaData resultsMeta =null;
  int rows = 0;
	
  // public: constructor to load driver and connect db 
  public dbClass()  {   	    
  	  // load mm.MySQL.driver 
	  try  
	  {       
          Class.forName("org.gjt.mm.MySQL.Driver");             
	  }
      // display corresponding error message when onload error occur      
      catch (java.lang.ClassNotFoundException e)  
	  { 
          System.out.println("Class not found exception occur. Message is:"); 
          System.out.println(e.getMessage()); 
      }

      // establish connection to the database throught driver
	  try
      {       
	      con = DriverManager.getConnection(ConnStr);	
      }
      // display sql error message
	  catch (SQLException e)
	  {
	      System.out.print("SQL Exception occur. Message is:"); 
          System.out.print(e.getMessage());     
	  }	
  }   
   
	
  // perform a query with records returned
  public ResultSet executeQuery(String sql)  throws SQLException
  {	 
      
	  ResultSet rs = null;		
      try
      {
          stmt = con.createStatement();
          rs = stmt.executeQuery(sql);	
          while(rs.next())
	          this.rows ++;         
          rs = stmt.executeQuery(sql);
	  }
      catch (SQLException e)
      {
	      System.out.print("Query:"+e.getMessage());
      }    
	  
	  this.rs = rs;
	  return rs;    
  }

  // perform a query without records returned
  public boolean executeUpdate(String sql)  
  {	 
      try
	  {
          stmt = con.createStatement();
          stmt.executeUpdate(sql);							
          return true;    
      }
	  catch(SQLException e)
	  {
	      System.out.print("Update:"+e.getMessage());
          return false;
	  }
  }

  // return the num of columns	
  public int getColumns()
  {
     int columns = 0;
	 try
	 {
	      this.resultsMeta = this.rs.getMetaData();
          columns = this.resultsMeta.getColumnCount();
	 }
	 catch (SQLException e)  {}
	 return columns;
  }

  // return the num of rows
  public int getRows()
  {
     return this.rows;
  }

  public String getDBName() {
      return this.dbName;
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久久| 亚洲一区在线播放| 亚洲v中文字幕| 东方欧美亚洲色图在线| 欧美亚洲国产bt| 亚洲欧美一区二区不卡| 国产成人av一区二区三区在线观看| 欧美日韩一区二区三区四区五区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 51久久夜色精品国产麻豆| 日本一二三不卡| 成人免费高清在线观看| 亚洲国产精品ⅴa在线观看| 99riav一区二区三区| 国产精品美女久久久久aⅴ国产馆| 捆绑变态av一区二区三区| 欧美日韩一区二区三区四区 | 国产精品1区2区3区| 久久女同互慰一区二区三区| 另类中文字幕网| 欧美成人精品二区三区99精品| 国产一区二区精品久久| 久久久综合精品| 日韩国产欧美三级| 欧美成人免费网站| 国产精品538一区二区在线| 国产精品理伦片| 色综合久久中文综合久久97 | 亚洲国产aⅴ天堂久久| 欧美日韩精品综合在线| 蜜桃视频第一区免费观看| 精品久久久久香蕉网| 蜜桃91丨九色丨蝌蚪91桃色| 久久精品视频在线免费观看 | 欧美二区三区91| 奇米一区二区三区av| 日韩色在线观看| 国产一区二区三区av电影 | 中文无字幕一区二区三区| 色系网站成人免费| 午夜婷婷国产麻豆精品| 中文字幕高清不卡| 色播五月激情综合网| 日本三级亚洲精品| 中文字幕 久热精品 视频在线| 色88888久久久久久影院按摩| 五月婷婷综合网| 久久综合九色欧美综合狠狠| 91丨九色丨蝌蚪富婆spa| 九九九精品视频| 国产精品无人区| 91免费国产视频网站| 国产综合成人久久大片91| 亚洲天堂网中文字| 久久久精品黄色| 一本色道久久综合亚洲精品按摩| 久久精品国产一区二区三区免费看| 最新成人av在线| 精品蜜桃在线看| 欧美日韩亚州综合| 粉嫩一区二区三区性色av| 日本成人在线电影网| 国产精品女人毛片| 日韩一级黄色大片| 欧美视频日韩视频在线观看| 另类调教123区| 国产精品三级av| 精品久久久久久无| 欧美日韩色综合| 色94色欧美sute亚洲线路一ni| 欧美日韩一区 二区 三区 久久精品| 青青草视频一区| 亚洲图片欧美综合| 中文幕一区二区三区久久蜜桃| 日韩欧美色综合| 欧美在线播放高清精品| 成人精品免费网站| 国产白丝网站精品污在线入口| 午夜精品久久久久影视| 一区二区三区丝袜| 中文字幕不卡三区| 2023国产精品视频| 日韩精品在线一区| 欧美美女喷水视频| 色婷婷一区二区三区四区| 国产成人免费av在线| 精品一区二区三区免费观看| 蜜桃视频一区二区| 蜜桃视频在线一区| 一区二区三区在线看| 国产精品久99| 国产精品乱码妇女bbbb| 国产精品久久久久天堂| 久久久久久日产精品| 欧美主播一区二区三区| 91网上在线视频| av成人老司机| 91浏览器在线视频| 在线视频欧美精品| 在线视频你懂得一区二区三区| 色哟哟精品一区| 欧美视频精品在线| 日韩午夜激情视频| 日韩精品综合一本久道在线视频| 精品99久久久久久| 久久精品亚洲精品国产欧美| 国产欧美一区二区精品性色 | 99久久国产综合色|国产精品| 99精品视频在线播放观看| 国产一区二区三区香蕉| 国产精品综合二区| 国产精品一区二区久久不卡| 紧缚奴在线一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 琪琪一区二区三区| 国产a精品视频| 99久久精品国产一区| 欧美在线免费观看亚洲| 91精品国产欧美一区二区| 日韩免费视频一区二区| 国产亚洲一区字幕| 日韩理论片一区二区| 日韩av在线发布| 国产剧情一区二区| 欧美自拍丝袜亚洲| 久久新电视剧免费观看| 欧美精品三级日韩久久| 久久五月婷婷丁香社区| 国产精品国产三级国产| 性欧美疯狂xxxxbbbb| 国产真实乱偷精品视频免| 精品一区二区三区影院在线午夜| 国产精品资源网站| 色欲综合视频天天天| 日韩精品一区二区三区在线观看| 国产亚洲自拍一区| 亚洲国产精品久久久久秋霞影院 | 日韩精品亚洲一区| 韩国三级电影一区二区| 99热这里都是精品| 日韩美一区二区三区| 亚洲一区二区三区国产| 亚洲高清在线精品| 精品一二三四区| 欧美性受xxxx| 中文字幕巨乱亚洲| 奇米影视在线99精品| 91精品国产综合久久香蕉麻豆| 一区二区三区在线观看国产| 午夜视频在线观看一区| 亚洲3atv精品一区二区三区| 日韩在线观看一区二区| 亚洲色图视频网站| 精品久久久久久久久久久久久久久久久 | 亚洲精品免费播放| 国产在线不卡一区| 久久精品日产第一区二区三区高清版| 亚洲国产精品久久一线不卡| 成人午夜免费视频| 日韩一级高清毛片| 国产一区二区按摩在线观看| 久久久噜噜噜久噜久久综合| 免费成人在线视频观看| 欧美成人国产一区二区| 国产呦精品一区二区三区网站| 欧美日韩一区二区三区视频| 日韩av不卡一区二区| 亚洲欧美一区二区久久| 亚洲欧美综合色| 亚洲一区二区在线播放相泽| 日本一不卡视频| 亚洲成va人在线观看| 欧美精品1区2区| 欧美精品一区在线观看| 久久免费视频色| 欧美日本韩国一区二区三区视频| 久久99精品国产麻豆不卡| 丝袜美腿亚洲色图| 视频一区欧美精品| 亚洲一区二区精品视频| 日韩电影在线一区| 亚洲第一福利一区| 欧美国产97人人爽人人喊| 久久久美女艺术照精彩视频福利播放| 久久综合久久99| 欧美电影免费观看完整版| 国产精品亲子乱子伦xxxx裸| 久久久久久99久久久精品网站| 成人毛片老司机大片| 久久99精品久久只有精品| 精品对白一区国产伦| 色综合久久久久久久久久久| 国产一区二区三区黄视频 | 在线亚洲一区二区| 偷拍与自拍一区| 亚洲精品国产精品乱码不99| 欧美国产综合色视频| 中文字幕欧美三区| 亚洲精品国产高清久久伦理二区| 日韩欧美在线观看一区二区三区|