c3p0 ConnectionPools設置與使用

c3p0是一個基於JNDI-bindable DataSources(使用DriverManager-based)的很容易使用的JDBC驅動函數庫。

所以在使用c3p0時,還需要一個JDBC的Driver,才能使用,而c3p0的作用只是控制Database的Connection使用,舉個簡單的例子,當Connection被DataBase Server timeout斷線後,c3p0會自動多次去重新連線,避免程式就直接丟出SQLException。

這次剛好遇到Microsoft SQL Server 2005不知為何一直丟出以下訊息,才去找到c3p0來使用的,發生的原因似乎是SQL Server本身對JDBC的Connection TimeOut斷線、或是Connection數不夠。

I/O Error: Connection reset
I/O Error: Software caused connection abort: recv failed

下面是一個範例,結果如下圖:

c3p0.png

Read More

[Java]try catch finally 例外資訊處理

try catch是專門在處理錯誤事件的,很多程式語言都有這樣子的例外處理方法,Java也不例外,對於新入門的可能會比較少遇到這類型的問題,不過是十分重要的一環。

當程式功能越來越多、越來越大時,try catch的使用可以增加除錯(bug)的速度,try catch也可以使用其特性來製做一些技巧性的功能或判斷,而當使用者在操作期間發現了例外或錯誤,如果丟出一堆程式碼大概會讓使用者不知所為,擷取這些例外或錯誤而丟出使用者容易理解的字串,也是try catch的功能之一。

try catch 用法

try裡的敍述句有可能會丟出例外資訊 ( Exception ) ,而丟出的例外資訊 ( Exception ) 型態就可以由catch來取得,做適當的處理。finally則是在try catch完成後會執行的動作,一般都是使用在關閉或則除物件等。

ps.catch取得例外需由小範圍而後大範圍,例如java.lang.NullPointException則需寫在Exception前面,因為NullPointException所能處理的範圍比Exception還小。

3.png
Read More