數據庫連接方法總結

//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();

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>  
發佈了18 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章