藉助DBCP串連池訪問dept表

來源:互聯網
上載者:User

JDBC2.0 規範引入了資料庫連接池技術。JDBC的資料庫連接池使用 javax.sql.DataSource介面來表示,該介面通常由商用伺服器(如WebLogic、WebSphere)等提供實現,也有一些開源組織提供實現(如DBCP、C3P0)。

DataSource 通常被稱為資料來源,它包含串連池和串連池管理兩個部分,但習慣上我們也經常把DataSource稱為串連池。

DBCP 串連池依賴另一個開源系統:commons-pool.jar。

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.apache.commons.dbcp.BasicDataSource;public class DBCP_JDBC {public static void main(String[] args) {BasicDataSource ds=new BasicDataSource();Connection conn=null;ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");ds.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");ds.setUsername("scott");ds.setPassword("tiger");ds.setInitialSize(5);//設定串連池的初始串連數ds.setMaxActive(20);//設定串連池最多可有多少個活動串連數ds.setMinIdle(2);//設定串連池中最少有多少個閒置串連try {conn=ds.getConnection();//通過資料來源擷取資料庫連接Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery("select * from dept");while(rs.next()){int deptno=rs.getInt("deptno");String dname=rs.getString("dname");String loc=rs.getString("loc");System.out.println(deptno+"\t"+dname+"\t"+loc);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();//釋放資料庫連接} catch (SQLException e) {e.printStackTrace();}}}}

運行程式,控制台輸出:

程式中conn.close( );並沒有關閉資料庫的物理串連,它僅僅把資料庫連接釋放,歸還給串連池,讓其他用戶端可以使用該串連。

查看 BasicDataSource 的原始碼可以知道:

public class BasicDataSource implements DataSource {...}

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.