jdbc驅動

jdbc驅動

//1.註冊jdbc驅動   方法有兩個:-------------------------------------------------------------

import   java.lang.Class;                                         //方法一
Class.forName("oracle.jdbc.OracleDriver"); //事實上不用引入

import   java.sql.DriverManager; //方法二:
DriverManager.registerDriver(new   Oracle.jdbc.OracleDriver());

//2.打開數據庫連接,方法兩個:-------------------------------------------------------------
DriverManager.getConnection(URL,username,password);           //方法一:
//例子:
Connection   myConnection=DriverManager.getConnection(
"jdbc:oracle:thin@localhost:1521:myoracle",
"name",
"password");

import   Oracle.jdbc.pool.OracleDataSource; //方法二:使用數據源
OracleDataSource   myDataSource=new   OracleDataSource(); //創建數據源
myDataSource.setServerName("localhost");
myDataSource.setDatabaseName("myOracle");
myDataSource.setDriverType("oci");
myDataSource.setNetworkProtocol("tcp"); //設置屬性
myDataSource.setPortNumber(1521);
myDataSource.setUser("name");
myDataSource.setPassword("password");
//連接數據庫,可以重新指定用戶名和密碼,以不同的身份連接查詢;
Connection   myConnection=myDataSource.getConnection("username","password");

//3.創建jdbc   Statement對象-------------------------------------------------------------------------
//可以禁止自動提交     myConnection.setAutoCommit(false);
Statement   myStatement=myConnection.createStatement();

//4.從數據庫取得信息,即使用statement對象
ResultSet   myResultSet=myStatement.executeQuery(
"select   userid,username   from   table"); //取得所有的信息

String   result=myResultSet.getString("userid"); //取得某項信息
if(myResultSet.wasNull()){      
};
ResultSet.next();
myResultSet.close(); //關閉

//在這裏提交               myConnection.commit();

//5.關閉jdbc對象-------------------------------------------------------------------------------
myStatement.close();
myConnection.close();
/*一般採用如下格式:
finally{
if(myStatement!=null){
myStatement.close();}
if(myConnection!=null{
myConnection.close();}
}
*/
//6.使用jdbc   preparedStatement對象-----------------------------------------------------
PreparedStatement   myPrepStatement=myConnection.preparedStatement(
"insert   into   products"+
"(id,type_id,name)   values   ("+
"?,?,?"
")" //
);
myPrepStatement.setInt(1,100);
myPrepStatement.setInt(2,1100);
myPrepStatement.setString(3,"username"); //使用set方法
myPrepStatement.excute(); //提交

/*二,使用連接緩存和連接池來連接數據庫
可以通過建立一個連接緩存,必要時向連接緩衝池添加連接。
*/
//首先討論連接緩衝池------------------------------------------------------------------------
import   javax.sql.*;
import   oracle.jdbc.pool.*;

OracleConnectionPoolDataSource   myOracle=mew   OracleConnectionPoolDataSource();
//創建連接緩衝池數據源oracleConnectionPoolDataSource的對象  
//實現了ConnectionPoolDataSource接口
//2.使用此對象設置物理數據庫連接的屬性
myOracle.setServerName("localhost");
myOracle.setDatabaseName("myOracle");
myOracle.setPortNumber(1521);
myOracle.serDriverTupe("thin");

myOracle.setUser("user");
myOracle.setPassword("password");

//3.創建緩衝的連接對象,它代表物理數據庫連接,可以使用它來請求數據庫連接實例

PooledConnection   myPooledConnection=   myOracle.getPooledConnection();
//PooledConnection   myPooledConnection=   myOracle.getPooledConnection("user","password");
//建立一次連接,可以多次請求連接實例,最後再關閉連接對象

//4.請求、使用、和最終關閉連接實例
Connection   myConnection=myPooledConnection.getConnection();
//使用
myconnection.close();

//5.程序結束之前,關閉PooledConnection對象
myPooledConnection.close();



/*   使用連接緩存---------------------------------------------------------------------------
*/
/*1.創建OracleConnectionCacheImpl的對象,他實現了OracleConnectionCacheClass接口
這個接口擴展了OracleDataSource類,可以使用這個類的所有屬性和方法
創建的最簡單的方法是使用默認的構造器*/
OracleConnectionCacheImpl   myOCCI=new   OracleConnectionCacheImpl();

myOCCI.setServerName("localhost");
myOCCI.setDatabaseName("myOracle");
myOCCI.setPortNumber(1521);
myOCCI.setDriverType("thin");
myOCCI.setUser("name");
myOCCI.setPassword("password");
//還可以使用現有的OraclePoolDataSource對象爲它設置屬性
//OracleConnectionCacheImpl   myOCCI=new   OracleConnectionCacheImpl(myOracle);
//或使用如下方法
//myOCCI.setConnectionPoolDataSource(myOracle);

//2.請求、使用和關閉連接實例
Connection   myConnection=myOCCI.getConnection();

/*PooledConnection對象代表物理數據庫連接,默認情況下,調用myOCCI.getConnection()方法時,
    myocci檢查緩存中是否存在Pooledconnection對象,沒有就創建一個
    然後,檢查pooledconnection對象是否有空閒的連接實例,沒有就創建
    並返回PooledConnection對象的連接實例
*/
//在這裏可以請求另一個連接實例
//Connection   myConnection2=myOCCI.getConnection();

//關閉連接實例
myConnection.close();

//程序結束前,應該關閉OracleConnectionCacheImpl對象,同時也就關閉了所有PooledConnection對象
myOCCI.close();



/*使用OCI驅動程序實現連接緩衝池---------------------------------------------------------------
    優點:可以動態配置物理連接數量
    每個連接實例可以可以有不同的用戶名密碼,可以使用一個緩衝池訪問不同的用戶模式
    能夠有多個緩衝連接,THIN只有一個數據庫連接
*/
OracleOCIConnectionPool   myOOCP=new   OracleOCIConnectionPool();
/*   myOOCP.set……
      ……
      ……
*/
//以下可選的可以程序運行時動態設定的屬性
/*
    Properties   myProperties=new   Properties();
    myProperties.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT,"5");
    my   ……                         .CONNPOOL_MAX_LIMIT,"10");
    ……………                 _INCREMENT,"2");
          _TIMEOUT,"30");
          _NOWAIT,"true");
    myOOCP.setPoolconfig(myProperties);
*/
//建立連接實例
OracleOCIConnection   myConnection=(OracleOCIConnection)myOOCP.getConnection();

myConnection.close();

myOOCP.close();

 

原文地址:http://blog.csdn.net/zfive5/articles/636099.aspx

發佈了25 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章