程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> [JAVA100例]055、可滾動結果集

[JAVA100例]055、可滾動結果集

編輯:關於JAVA

import java.sql.*;
/**
* <p>Title: ODBC連接數據庫</p>
* <p>Description: 本實例演示如何使用JDBC橋操作數據庫。</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: JDBCScrollConn.java</p>
* @version 1.0
*/
public class JDBCScrollConn{
 private static String url="";
 private static String username="";
 private static String password="";
/**
*<br>方法說明:獲得數據連接
*<br>輸入參數:
*<br>返回類型:Connection 連接對象
*/
 public Connection conn(){
   try {
   //加載JDBC驅動
    Class.forName("oracle.jdbc.driver.OracleDriver");
    //創建數據庫連接
    Connection con = DriverManager.getConnection(url, username, password);
    return con;
  }catch(SQLException sqle){
   System.out.println("can´t connection db:"+sqle);
   return null;
  } catch (Exception e) {
    System.out.println("Failed to load JDBC/ODBC driver.");
    return null;
   }
 }
/**
*<br>方法說明:執行查詢SQL語句
*<br>輸入參數:Connection con 數據庫連接
*<br>輸入參數:String sql 要執行的SQL語句
*<br>返回類型:
*/
 public void query(Connection con, String sql){
  try{
   if(con==null){
    throw new Exception("database connection can´t use!");
   }
   if(sql==null) throw new Exception("check your parameter: ´sql´! don´t input null!");
   //聲明語句
   Statement stmt = con.createStatement();
   //執行查詢
   ResultSet rs = stmt.executeQuery(sql);
   ResultSetMetaData rmeta = rs.getMetaData();
   //獲得數據字段個數
   int numColumns = rmeta.getColumnCount();
   while(rs.next())
 {
  for(int i = 0;i< numColumns;i++)
  {
 String sTemp = rs.getString(i+1);
 System.out.print(sTemp+" ");
  }
  System.out.println("");
 }
  }catch(Exception e){
   System.out.println("query error:"+e);
  }
 }
/**
*<br>方法說明:執行查詢SQL語句
*<br>輸入參數:Connection con 數據庫連接
*<br>輸入參數:String sql 要執行的SQL語句
*<br>輸入參數:pageNo 頁碼數
*<br>輸入參數:pageSize 記錄條數
*<br>返回類型:
*/
 public void query(Connection con, String sql,int pageNo,int pageSize){
  try{
   if(con==null){
    throw new Exception("database connection can´t use!");
   }
   if(sql==null) throw new Exception("check your parameter: ´sql´! don´t input null!");
   int intRowCount;//記錄總數
   int intPageCount;//總頁數
   //聲明語句
   Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
   //執行查詢
   ResultSet rs = stmt.executeQuery(sql);
   ResultSetMetaData rmeta = rs.getMetaData();
   //獲得數據字段個數
   int numColumns = rmeta.getColumnCount();
   //獲取記錄總數
   rs.last();
   intRowCount = rs.getRow();
   //記算總頁數
   intPageCount = (intRowCount+pageSize-1) / pageSize;
 //調整待顯示的頁碼
   if(pageNo>intPageCount) pageNo = intPageCount;
if(intPageCount>0){
   //將記錄指針定位到待顯示頁的第一條記錄上
   rs.absolute((pageNo-1) * pageSize + 1);
   int i = 0;
   while(i<pageSize && !rs.isAfterLast())
 {
  for(int j = 0;j< numColumns;j++)
  {
 String sTemp = rs.getString(j+1);
 System.out.print(sTemp+" ");
  }
  i++;
  rs.next();
  System.out.println("");
 }
}
  }catch(Exception e){
   System.out.println("query error:"+e);
  }
 }
/**
*<br>方法說明:執行插入、更新、刪除等沒有返回結果集的SQL語句
*<br>輸入參數:Connection con 數據庫連接
*<br>輸入參數:String sql 要執行的SQL語句
*<br>返回類型:
*/
  public void execute(Connection con, String sql){
  try{
   if(con==null) return;
   Statement stmt = con.createStatement();
  stmt.executeUpdate(sql);
}catch(Exception e){
   System.out.println("query error:"+e);
  }
 }
/**
*<br>方法說明:
*<br>輸入參數:
*<br>返回類型:
*/
 public void demo(int pageNo,int pageSize){
  try{
   JDBCScrollConn jc = new JDBCScrollConn();
   Connection conn = jc.conn();
   String sql = "select * from TBL_USER order by id";
   jc.query(conn,sql,pageNo,pageSize);
   conn.close();
  }catch(SQLException se){
   System.out.println(se);
  }catch(Exception e){
   System.out.println(e);
  }
 
 }
/**
*<br>方法說明:主方法
*<br>輸入參數:
*<br>返回類型:
*/
 public static void main(String[] arg){
  if(arg.length!=5){
   System.out.println("use: java JDBCScrollConn url username password NoPage PageSize");
   return;
  }
  JDBCScrollConn jsc = new JDBCScrollConn();
  jsc.url = arg[0];
  jsc.username=arg[1];
  jsc.password=arg[2];
  int nopage = Integer.parseInt(arg[3]);
  int pagesize = Integer.parseInt(arg[4]);
  jsc.demo(nopage,pagesize);
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved