2012-11-06 104 views
0

我即將創建一個項目,我想要一個將我的應用程序連接到數據庫的類。SQL提供程序與Java

我想以最好的面向對象的方式來做到這一點,遵循固體原則!

我對你的問題是:

是它曾經的智能劃分您的供應商分爲亞類,例如一個子類,它會從數據庫中,並且可以將數據插入到數據庫中的一個子類的信息?或者你是否將這些功能保存在一個巨大的課堂上?

回答

2

我建議你看看Martin Fowler的Patterns of Enterprise Application Architecture。他在持久性模式方面有着不錯的篇章。

此問題已解決很多很多次:ORM解決方案如JPA和Hibernate,iBatis映射,Spring JDBC。我無法想象你將如何改進之前的工作。如果你不能說明有什麼不同,我會建議在投資新的東西之前,先使用已經寫好,測試和證明的東西。

如果你必須,我會推薦一個通用的DAO。這裏是一個非常簡單的一個:

package persistence; 

public interface GenericDao<K, V> { 
    V find(K key); 
    List<V> find(); 
    K save(V value); 
    void update(V value); 
    void delete(V value); 
} 
1

您可以先閱讀DAO pattern。一旦你有了這個,深入研究ORM frameworks

簡而言之:是的,通過一切手段保持特定對象/類的持久性代碼在一起。

乾杯,

+0

因此,提供者是一個包含獲取數據和插入數據的大類嗎? –

+0

它可以是一個通用的DAO,但你會努力工作。 – duffymo

+0

但理論上所有的SQL語句都應該在同一個類中? –

1

通常也最好通過對象分割這些類(即客戶,客戶,汽車),而不是功能(即讀寫)。這是一個ORM使用,用於Java的方法具體來看看Hibernate的ORM框架上面

http://docs.jboss.org/hibernate/orm/3.5/api/

文檔,你可以毫無疑問找到谷歌

3

我不同意很好的教程ORM是總是要走的路。

如果要編程接近數據庫,像mybatis這樣的查詢映射器是ORM方法的有用替代方法。

MyBatis數據映射器框架使得使用關係數據庫和麪向對象的應用程序更容易。 MyBatis使用XML描述符或註釋將對象與存儲過程或SQL語句連接起來。簡單性是MyBatis數據映射器在對象關係映射工具上的最大優勢。

MyBatis的是supported by Spring,讓您的生活容易。

+0

+1 - 我完全同意。如果你沒有一個堅實的對象模型,那麼在ORM中沒有意義。 – duffymo

相關問題