通過前面幾篇的介紹,對於jdbc的使用應該基本上夠上專案開發的要求了。但是,總是覺得還有一些問題,比如,我寫了乙個dbutil類,這個類裡持有乙個connection物件,而這個物件是被所有需要使用的地方共用的。
private static connection conn = null;
public static connection getconnection()
} catch (classnotfoundexception e) catch (sqlexception e)
}return conn;
}public static void close(connection conn) catch (sqlexception e) conn = null; }*/}
可以看到,因為建立乙個connection是比較破費資源的操作,所以這個connection是建立一次然後被公用的,而且也沒有真正實現它的close方法(如果每次都用完就close,那每次都要重新建立,就失去意義了)
[b]jdbc and multithreading[/b]
當我知道資料庫連線池的時候,就把這部分工作讓它去實現了。何樂而不為呢?
我用過最多的連線池是dbcp,另外也用過c3p0。下面以dbcp為例。
private static datasource datasource;
public static connection getconnection()
try catch (sqlexception e)
}private static synchronized void builddatasource()
這裡使用了dbcp的basicdatasource(這是乙個datasource介面的實現),在這裡通過basicdatasource.getconnection() 的方法來獲取連線,至於connection的關閉,則會被放到連線池中。關於datasource還有更多的屬性,如maxactive(最大活躍數),maxidle(最大空閒數)等。當然,更常見的做法是把這些配置放到properties檔案裡,後面會在引用spring的時候進行討論。
關於basicdatasource,從下面的類圖中可以看到相應的屬性。
[img]
資料庫的那些事
一 常用的sql命令 1.select 獲取資料 2.update 更新資料 3.delete 刪除資料 4.insert into 插入新資料 5.create database 建立新資料庫 6.alter database 修改資料庫 7.create table 建立新錶 8.alter t...
資料庫設計的那些事
1,表和字段的設計規範,當然每個公司有其自己的規範 1 要有可讀性 eg studentaddress,不要設計成stuaddress 2 表意性 eg student,不要設計成ch1 3 盡量不要縮寫 eg studentaddress,不要設計成stuadd 2,字段型別的選擇 在進行資料庫資...
資料庫的那些事(全是乾貨)
談到資料庫,大家第一想法就是怎麼去優化,怎麼讓查詢操作更快。我認為最好的方式就是從開始資料庫設計的時候就要盡量考慮周全。如果不幸是個老專案,就得從優化入手了。接下就從設計和優化談一下我的一些認識和經驗。1 資料庫的設計 乙個好的資料庫設計方案對於資料庫的效能常常會起到事半功倍的效果。資料庫的設計包含...