從此不再心頭痛 資料庫連接方法總結

來源:互聯網
上載者:User
資料|資料庫|資料庫連接

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



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。