我即將創建一個項目,我想要一個將我的應用程序連接到數據庫的類。SQL提供程序與Java
我想以最好的面向對象的方式來做到這一點,遵循固體原則!
我對你的問題是:
是它曾經的智能劃分您的供應商分爲亞類,例如一個子類,它會從數據庫中,並且可以將數據插入到數據庫中的一個子類的信息?或者你是否將這些功能保存在一個巨大的課堂上?
我即將創建一個項目,我想要一個將我的應用程序連接到數據庫的類。SQL提供程序與Java
我想以最好的面向對象的方式來做到這一點,遵循固體原則!
我對你的問題是:
是它曾經的智能劃分您的供應商分爲亞類,例如一個子類,它會從數據庫中,並且可以將數據插入到數據庫中的一個子類的信息?或者你是否將這些功能保存在一個巨大的課堂上?
我建議你看看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);
}
通常也最好通過對象分割這些類(即客戶,客戶,汽車),而不是功能(即讀寫)。這是一個ORM使用,用於Java的方法具體來看看Hibernate的ORM框架上面
http://docs.jboss.org/hibernate/orm/3.5/api/
文檔,你可以毫無疑問找到谷歌
我不同意很好的教程ORM是總是要走的路。
如果要編程接近數據庫,像mybatis這樣的查詢映射器是ORM方法的有用替代方法。
MyBatis數據映射器框架使得使用關係數據庫和麪向對象的應用程序更容易。 MyBatis使用XML描述符或註釋將對象與存儲過程或SQL語句連接起來。簡單性是MyBatis數據映射器在對象關係映射工具上的最大優勢。
MyBatis的是supported by Spring,讓您的生活多容易。
+1 - 我完全同意。如果你沒有一個堅實的對象模型,那麼在ORM中沒有意義。 – duffymo
因此,提供者是一個包含獲取數據和插入數據的大類嗎? –
它可以是一個通用的DAO,但你會努力工作。 – duffymo
但理論上所有的SQL語句都應該在同一個類中? –