連接池

一、連接池介紹

  一次性創建多個連接,將多個連接緩存在內存中,形成數據庫連接池,如果應用程序需要操作數據庫,只需要從連接池中獲取一個連接,使用後,並不需要關閉連接,只需要將連接放回到連接池中。

  連接池的好處:節省創建連接與釋放連接,連接池中連接起到複用的作用,提高程序性能。


二、自定義連接池

  編寫連接池需要實現javax.sql.DataSource接口。DataSource接口中定義了兩個重載的方法。

public Connection getConnection() throws SQLException
publicConnection getConnection(String username,String password) throws SQLException


  實現DataSource接口,並實現連接池功能的步驟:

    在DataSource構造方法中批量創建於數據庫的連接,並把創建的連接保存到一個集合對象之中。

    實現getConnection()方法,讓getConnection()方法每次調用時,從集合對象中取出一個Connection對象返回給用戶。

    當用戶使用完Connection,調用conn.close()方法時,Connection對象應該保證將自己返回到連接池的集合對象中,而不應該把conn還給數據庫。


  自定義連接池注意問題:

    儘量不要使用具體對象類型的引用。

    使用自定義方法close()將連接放回到連接池,需要用戶在使用的時候調用額外的API,即讓用戶定義連接池的時候,DataSource  dataSource = new MyDataSource();在用戶使用連接後,應該調用conn.close()完成將連接放回到連接池。


三、主流開源連接池

  DBCP連接池和c3p0連接池







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章