GUI應用程式該以何種方式訪問資料庫?

ansen發表於2004-01-11
一個GUI應用程式該以何種方式訪問資料庫更加合理呢?我想了幾種方式,還請大家發表自己的意見!
1. 象Jive一樣使用資料庫連線池,GUI程式初始化時建立一個資料庫連線池,以後GUI程式的所有的資料庫連線均從該連線池中得到。存在的問題:
(1) Client 數過多時,每個客戶端都維持幾個資料庫連線的話,會造成資料庫負擔過重。而且資料庫可用的連線數有一定的限制。當客戶端過多時會造成後來者無法取得連線。
(2) 連線池在初始化時需要資料庫使用者的username , password。這容易洩漏資料庫使用者的使用者名稱和密碼。不懷好意的人利用該資料庫使用者的身份破壞資料庫怎麼辦!
(3) 對資料庫的訪問不能進行統一的控制。
2. 在一臺伺服器上開啟一個資料庫訪問的伺服器端程式。GUI客戶端所有的資料庫訪問請求均發往此伺服器端程式,由該程式負責訪問資料庫,並將查詢結果返回給GUI客戶端。優點是便於對資料庫的訪問進行集中控制,日誌記錄等。存在的問題:
(1) 得不到Connection物件,只能傳送SQL語句。
(2) 書寫一個高效的,併發的, robust的伺服器端程式不是一件簡單的事。(原先寫過一個基於Socket 的伺服器端程式完成類似的功能,總感覺不太穩定,是否使用rmi會穩定點,而且rmi可以返回物件。我知道rmi也是基於socket的,但他的API經過了嚴格的測試,做了最佳化,應該穩定的多)。

相關文章