昨天我們看了jdbc的簡單連接數據庫,但是其中還存在著許多的問題。
問題一 :
根據昨天的例子發現,獲取數據庫連接,釋放數據庫資源的代碼都一樣,可以提取出來一個方法,當獲取連接,釋放資源是直接調用方法,減少代碼的冗餘度。
問題二 :加載數據庫驅動,獲取連接時存在硬編碼,當數據庫改變,數據庫類型改變。密碼等信息改變時,代碼不利於維護 。
今天我們學習使用配置文件工具類來解決這些問題。
工具類的提取
1. 配置文件properties
配置數據庫連接的信息,數據都是以key/value的形式保存,配置文件中存儲了我們的數據庫地址,用戶名以及密碼,修改是這需要更改配置文件的東西,即可實現,有利於代碼的維護。
在src的根目錄下創建db.properties 文件
2.獲取配置文件中的value,將配置文件中的值提取出來之後,用Class.forName(DRIVER)加載驅動,下圖沒有加上。
封裝工具類,提取獲取連接 ,關閉資源方法
我們將讀取文件這些方法裝在了static代碼塊中,因為文件只需要加載一次即可,放在代碼塊中正好實現這功能。減少代碼的冗餘,提高效率。
關閉資源方法
在使用完數據庫之後,我們要對數據庫的連接資源進行釋放,依次關閉結果集,statement和數據庫的連接,釋放資源,提高系統性能。
工具類的使用
獲取連接時調用工具類的獲取連接方法,釋放資源時,調用釋放資源的方法
總結:使用工具類,我們先是配置文件,load加載配置文件,加載驅動,獲取連接,最後釋放資源。還是有一些麻煩,我們在看看更簡單的連接池,3步實現數據庫連接。
數據庫連接池
優點
- 節省創建連接與釋放連接 性能消耗
- 連接池中連接起到複用的作用 ,提高程序性能
數據庫連接池的運行機制
(1) 程序初始化時創建連接池
(2) 使用時向連接池申請可用連接
(3) 使用完畢,將連接返還給連接池
(4) 程序退出時,斷開所有連接,並釋放資源
C3p0連接
開發步驟
1 導包 驅動包 連接池 依賴包 工具包
2 連接池對象
3 獲取連接
在開始之前我們需要添加兩個
jar包數據庫的源配置文件
c3p0.properties 文件名不能改, 必須放在src下 ,配置文件中的key名稱不能變,有著嚴格的格式。
c3p0-config.xml 可以配置多個數據庫連接並且可以指定名字去加載
如果使用上面的兩種配置文件配置,且放在src目錄下 c3p0數據庫連接池會自動讀取配置文件,配置文件任選一種就可以,xml文件我們之前沒有講,在以後學習到我們會有詳細的介紹。
文件也都配置好之後,我們就可以使用工具類進行數據連接了。
如下圖,簡單的幾步就可實現對數據庫的連接,是不是很神奇。
幾種連接池的簡單比較:
dbcp 半自動化操作 不能自動連接
c3p0 自動化操作(自動的加載配置文件 並且設置到對象裡面) 自動嘗試連接
Druid 阿里巴巴的開源連接池。這是阿里巴巴自己研發的一種連接池,大家想想每年的雙11,龐大的信息連接,其中Druid就起到了關鍵的作用,感興趣的話,大家可以去了解了解。
從剛開始的封裝方法,再到使用配置文件,最後的連接池短短三步即可實現對數據庫的連接,而且是自動連接釋放資源,我們一點點的進步,希望大家可以有所學習有所得。
為了方便大家。這裡給大家提供了c3p0的jar包,大家可以點擊左下角的瞭解更多,關注後私信我,輸入c3p0獲取jar包,大家也可以中網上直接下載。
這就是我們在連接數據庫時使用的工具方法,更加的簡單方便,也更加的安全有保證。有幫助到大家的話,關注一下唄~
感謝堅持關注的朋友
世界很大,幸好有你
歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。
聚焦最新科技諮訊,探尋未來智能領域,我是女陶。
閱讀更多 女陶愛柚子 的文章