java数据源是什么_《java数据源—连接池》
《java數據源—連接池》
1.數據源的分類:直接數據源、連接池數據源。
2.連接池、數據源、JNDI
a.數據源:Java中的數據源就是連接到數據庫的一條路徑,數據源中并無真正的數據,它僅僅記錄的是你連接到哪個數據庫,以及如何連接。
b.連接池:簡單的說就是保存所有的數據庫連接的地方,在系統初始化時,將數據庫連接對象存儲到內存里,當用戶需要訪問數據庫的時候,并不是建立一個新的連接,而是從連接池中
取出一個已經建立好的空閑連接對象。而連接池負責分配、管理、釋放數據庫連接對象。注意的是:連接池是由容器(比如tomcat)提供的,
同時容器也管理著連接池。
? 該連接池的解決的問題是:
當使用java.sql中提供的api創 建數據庫連接時候,需要耗費很大的資源,要進行用戶名密碼數據庫連接驗證等,即耗費資源也耗費時間。如果在程序中,
每次需要訪問數據庫時候,都進行數據庫 連接,那么勢必會造成性能低下;同時,如果用戶失誤忘記釋放數據庫連接,會導致資源的浪費等。
而數據庫連接池就是解決該問題,通過管理連接池中的多個連接 對象(connection),實現connection重復利用。從而,大大提高了數據庫連接方面的性能。
? 該連接池的功能是:
負責創建,管理,釋放,分配數據庫連接即(connection)。首先,負責創建相應數目的數據庫連接對象(connection)對象,并存放到數據庫連接池(connect pool)中。
當用戶請求數據庫連接時,該連接池負責分配某個處于空閑狀態的數據庫連接對象;當用戶發出釋放該數據庫連接時,該連接池負責將該連接對象重新設置為空閑狀態,
以便被別的請求重復利用。同時;數據庫連接池負責檢查(空閑時間>最大空閑時間)的數據庫連接,并釋放。
? 連接池主要參數介紹
最小連接數:初始化時,系統將負責創建該數目的connection放入連接池中。
最大連接數:系統允許創建connection的最大數值。當系統請求連接時候,且連接池中不存在空閑的連接:如果connection總數未超過最大連接數,
那么連接池負責創建新的connection對象,并返回該對象;如果connection總數已經到達該最大連接數,那么連接池將用戶請求轉入等待隊列。
3.jdbc操作數據庫
在Java開發中,使用JDBC操作數據庫的四個步驟如下:
①加載數據庫驅動程序(Class.forName("數據庫驅動類");)
②連接數據庫(Connection con = DriverManager.getConnection();)
③操作數據庫(PreparedStatement stat = con.prepareStatement(sql);stat.executeQuery();)
④關閉數據庫,釋放連接(con.close();)
4.開源數據連接池(connection pool):c3p0,BDCP,BoneCP,Proxool...(不提供連接池監控)
a.C3P0是一個開放源代碼的JDBC連接池,它在lib目錄中與Hibernate一起發布,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。
(主頁:http://sourceforge.net/projects/c3p0/)
b.DBCP(Database Connection Pool)是一個依賴Jakarta commons-pool對象池機制的數據庫連接池,Tomcat的數據源使用的就是DBCP。
c.BoneCP 是一個開源的快速的 JDBC 連接池。
d.Proxool是一個Java SQL Driver驅動程序,提供了對你選擇的其它類型的驅動程序的連接池封裝??梢苑浅:唵蔚囊浦驳浆F存的代碼中
5.商業中間件連接池:weblogic、websphere(提供連接池監控)
a.weblogic(oracle)設置為最大和最小都是200,在具體項目應用中,此連接池的持續運行的穩定性很強,在大并發量的壓力下性能也相當優秀,另外在一些異常情況下連接池里的連接也能夠及時釋放。
連接池監控一目了然,及時到位。
b. websphere(IBM)(phere/sf??/)最小200最大300,在具體項目應用中,此連接池的持續運行的穩定性相當強,在大并發量的壓力下性能也足夠優秀,另外在一些異常情況下連接池里的連接能夠及時釋放,
連接池監控配置有些復雜,但是配置好后各項指標一目了然并且有圖形顯示。
6.Druid 連接池簡介(德魯伊)
a.Druid首先是一個數據庫連接池。Druid是目前最好的數據庫連接池,在功能、性能、擴展性方面,都超過其他數據庫連接池,
包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已經在阿里巴巴部署了超過600個應用,經過一年多生產環境大規模部署的嚴苛考驗。
b.Druid是一個JDBC組件,它包括三個部分:
基于Filter-Chain模式的插件體系。
DruidDataSource 高效可管理的數據庫連接池。
SQLParser
c.可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對于線上分析數據庫訪問性能有幫助。
d.SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。
e.數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
f.Druid支持所有JDBC兼容的數據庫,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。
g.擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter機制,很方便編寫JDBC層的擴展插件。
基本步驟:
1.Druid.jar包
2.Druid連接池配置
3.Druid屬性配置圖
4.數據源監控配置
具體配置:https://blog.csdn.net/u011038738/article/details/80680215
總結
以上是生活随笔為你收集整理的java数据源是什么_《java数据源—连接池》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度网站统计和CNZZ网站统计对比
- 下一篇: 饥荒哈姆雷特雨林木种子怎么获得 饥荒哈姆