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

首頁 > 學院 > 開發設計 > 正文

用一個JavaBean封裝JDBC操作

2019-11-18 12:38:41
字體:
來源:轉載
供稿:網友

  關于數據庫在項目開發中的重要性,我想不用我在此多費唇舌;因此關于對數據庫操作的重要性我想更不需要我在此大聲疾呼!然而你是否思考過這樣的幾個問題:在你的每一個項目中共有多少子項目需要對數據庫進行操作?你為此設計的操作數據庫的javaBean是否能滿足不同子項目的要求?當用戶要求采用其他數據庫系統時你是否需要對已經編譯好的Class文件重新編譯?
  
  假如你是一位很勤奮的程序員,你可能會說:“無所謂,只要修改一下連接方式然后再編譯一下就OK了!”然而你是否曾經想過,假如我們可以花一點時間把這個JavaBean完善一下,我們甚至連這種“修改”都可以省去?
  
  筆者并不是一個勤奮的程序員,因此希望通過一個JavaBean來完成對數據庫的大部分操作,同時希望該JavaBean能夠滿足對目前大部分主流數據庫的操作。在此基礎上寫了一個JavaBean,目前暫時命名為LPWDatabaSEOperation。以下為該JavaBean的相關信息:
  
  一、支持對Oracle、Sybase、MySQL、SQLServer、DB2、PostgreSQL、Jdbc-Odbc-Bridge等數據庫的DriverManager格式的操作;
  
  二、提供了以Tomcate服務器為平臺的數據源的操作(其他諸如WebLogic、WebSphere等大型服務器通常通過實體Bean來訪問數據庫,因此本程序沒有提供對這兩種服務器數據源的訪問,但保留了相應位置,有愛好的讀者可以自己進行補充。);
  
  三、使用了唯一的一個方法executeSQL對數據的增加、刪除、修改和查詢等操作進行統一處理,省去了記憶多個方法的麻煩;
  
  四、提供了對分頁顯示的簡單支持。
  
  本文提供了該JavaBean的完整源代碼,同時源代碼中有具體的文檔注釋,有愛好的讀者可以將其編譯成開發文檔,以供隨時參考。源代碼如下:
  package lpw.beans;
  
  import java.sql.DriverManager;
  import java.sql.Connection;
  import java.sql.PReparedStatement;
  import java.sql.ResultSet;
  import javax.sql.DataSource;
  import javax.naming.Context;
  import javax.naming.InitialContext;
  
  /
  

Title:


  

Description:


  

Copyright: Copyright 2004


  

Company: 呂培文


  @author not attributable
  @version 1.0
  /
  public class LPWDatabaseOperation
  {
  /
  使用Oracle格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useOracleDriverManager = 0;
  /
  使用Sybase格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useSybaseDriverManager = 1;
  /
  使用MySQL格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useMysqlDriverManager = 2;
  /
  使用SQLServer格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useSqlserverDriverManager = 3;
  /
  使用DB2格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useDb2DriverManager = 4;
  /
  使用Informix格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useInformixDriverManager = 5;
  /
  使用PostgreSQL格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int usePostgresqlDriverManager = 6;
  /
  使用Jdbc-Odbc-Bridge格式的DriverManager
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useJdbcOdbcBridge = 7;
  /
  使用Tomcate格式的DataSource
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useTomcateDataSource = 8;
  /
  使用WebLogic格式的DataSource
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useWeblogicDataSource = 9;
  /
  使用WebSphere格式的DataSource
  @see LPWDatabaseOperation#getUseContextType
  /
  public final int useWebsphereDataSource = 10;
  /////////////////////////////////////////////////////////
  private String[] driverManagerType;
  private int useContextType;
  private int pageSize,pageCount,absolutePage,recordCount;
  //////////////////////////////////////////////////////////
  private Connection connection;
  private PreparedStatement preparedStatement;
  private ResultSet resultSet;
  
  /
  構造LPWDatabaseOperation。
  在構造時需選擇所使用的環境類型,
  LPWDatabaseOperation支持多種主流的DriverManager驅動及DataSource環境,
  并定義了一些常用DriverManager和DataSource的標準格式,
  其中包括Oracle、Sybase、MySQL、SQLServer等主流數據庫的DriverManager格式,
  以及Jdbc-Odbc-Bridge的標準格式,
  同時還提供了Tomcate、WebLogic和WebSphere下DataSource的標準格式,
  程序員在使用時只需要選擇相應的常量即可。
  @param useContextType int
使用的環境類型
  @see LPWDatabaseOperation#getUseContextType
  /
  public LPWDatabaseOperation(int useContextType)
  {
  if(useContextType<0) useContextType = 0;
  if(useContextType>7) useContextType = 7;
  this.useContextType = useContextType;
  /////////////////////////////////////////////////////////
  this.driverManagerType[this.useOracleDriverManager] = new String("oracle.jdbc.driver.OracleDriver");
  this.driverManagerType[this.useSybaseDriverManager] = new String("com.sybase.jdbc.SybDriver");
  this.driverManagerType[this.useMysqlDriverManager] = new String("com.mysql.jdbc.Driver");
  this.driverManagerType[this.useSqlserverDriverManager] = new String("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  this.driverManagerType[this.useDb2DriverManager] = new String("com.ibm.db2.jdbc.app.DB2Driver");
  this.driverManagerType[this.useInformixDriverManager] = new String("com.informix.jdbc.IfxDriver");
  this.driverManagerType[this.usePostgresqlDriverManager] = new String("org.postgresql.Driver");
  this.driverManagerType[this.useJdbcOdbcBridge] = new String("sun.jdbc.odbc.JdbcOdbcDrive");
  /////////////////////////////////////////////////////////
  this.pageSize = 20;
  this.pageCount = 0;
  this.absolutePage = 0;
  this.recordCount = 0;
  //////////////////////////////////////////////////////////
  this.connection = null;
  this.preparedStatement = null;
  this.resultSet = null;
  }
  
  /
  打開數據庫,需要給該方法提供數據庫的URL地址、用戶名稱及用戶密碼。
  成功打開數據庫后便可通過executeSQL方法對數據庫進行操作。
  @param databaseURL String
數據庫的URL地址,假如使用DataSource則為數據庫的JNDI-Name
  @param userName String
用戶名稱
  @param passWord String
用戶密碼
  @throws java.sql.SQLException
  @throws java.lang.ClassNotFoundException
  @throws javax.naming.NamingException
  /
  public void openDatabase(String databaseURL,String userName,String password)
  throws java.sql.SQLException,java.lang.ClassNotFoundException,javax.naming.NamingException
  {
  if(this.useContextType>=0 && this.useContextType<=this.useJdbcOdbcBridge)
  {
  Class.forName(this.driverManagerType[this.useContextType]);
  this.connection = DriverManager.getConnection(databaseURL,userName,password);
  }
  else if(this.useContextType==this.useTomcateDataSource)
  {
  Context context = new InitialContext();
  DataSource dataSource = (DataSource)context.lookup(databaseURL);
  this.connection = dataSource.getConnection(userName,password);
  }
  else if(this.useContextType==this.useWeblogicDataSource)
  {
  }
  else if(this.useContextType==this.useWebsphereDataSource)
  {
  }
  }
  
  /
  執行SQL語句,可以是Select、Insert、Delete、Update中的任何一個。
  @param sql String
欲被執行的SQL語句
  @return ResultSet
假如執行查詢操作,則返回該查詢操作的ResultSet;假如執行的是其它操作,則返回null。
  @throws java.sql.SQLException
  /
  public ResultSet executeSQL(String sql) throws java.sql.SQLException
  {
  sql = sql.trim();
  this.preparedStatement = this.c

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴楚县| 辽宁省| 于都县| 永昌县| 建阳市| 木兰县| 河西区| 从化市| 淮南市| 磴口县| 双柏县| 新竹县| 射阳县| 松潘县| 余庆县| 都昌县| 礼泉县| 绥化市| 额敏县| 高陵县| 望城县| 甘泉县| 手游| 青田县| 香格里拉县| 萍乡市| 百色市| 阜南县| 麟游县| 余江县| 霞浦县| 浦县| 灌云县| 五大连池市| 南康市| 吴川市| 浪卡子县| 沧州市| 襄汾县| 安图县| 文水县|