問題虛擬背景:
A項目組要實現一個基于Sql Server的應用,但工作環境只安裝有MySql(公司對開源比較看好: )),而且客戶有可能會轉移到Oracle數據庫環境。要求應用具有數據庫移植能力和快速更換能力,使應用在工作環境調試成功后能迅速轉移到客戶的Sql Server環境,而且將來可以方便地轉向Oracle。
Andy提出的可用方案:
1、使用標準JDBC
2、使用抽象類定義數據訪問單元
3、定義具體數據源訪問單元繼承2中接口
代碼示例:
定義數據訪問單元抽象類,包含數據訪問邏輯
定義具體數據源訪問單元
在調用數據訪問層時,可以聲明一個DataManager的引用,然后在構造器中實例化為具體子類,如:
以后要遷移到另一個數據庫(有JDBC驅動),只需定義具體子類繼承DataManager(如HsqlDataManager),然后修改資源文件中的DataManager名稱(或者將new的類名改一下),不需要修改代碼。
這興許可以解釋另一個問題:不贊成使用存儲過程,而應將SQL語句嵌在代碼中(適用于Java;微軟注定.Net不會有平臺移植性,數據庫大都用Sql Server,所以寫存儲過程還是比較好的)。
(我在我的一個Eclipse RCP項目里使用了這種模式,從Sql server 2000到Hsql,特別方便,看起來感覺也比較好)
歡迎大家拍轉,^_^
只有注冊用戶登錄后才能發表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關文章:
|
||