2012-12-13 97 views
4

這可能是一個教科書問題,但我正在考慮如何設計一些從接收查詢結果的RESTful服務中抽象出數據庫連接的類。實現數據訪問層抽象

我的想法是創建一個數據訪問層接口,然後創建一個實現它的頂級類,幷包含將由所有數據庫共享的所有操作。然後,我會實現這個超類的具體子類(一個適配器)。

對我來說似乎很簡單,但我已經反彈過的一些人認爲它可能更復雜。

對於上下文,這是Java和兩個DB的MySQL和HBase。我們已經有MySQL的數據訪問層(DAL)類。這些不使用休眠或彈簧;他們構建數據庫查詢並手動創建POJO實例。

所以我想我的問題有兩個部分:

1)這是我想象的那麼簡單?

2)有沒有更好的方法嗎?

回答

2

由於這種問題的情況下,響應只能是:它取決於!

根據你想要實現的,this can be a complicated issue或者可以是一個更簡單的。你可以選擇像Hibernate這樣的完全成熟的ORM工具,或者使用具有低級JDBC結構的自定義基本層。根據你的應用程序,它適用於你。

但不要忽視這樣一個事實,即你想要做的事情基本上是對車輪的再造。 This has been done before。您應該重新使用您的DAL,如果它的工作做得很好,或者去尋找現有的框架。

在這一點上,你想要的實現只是選擇適當的工具。不要盲目選擇一個,分析每個人的優缺點,然後選擇最適合的工作(無論是你的還是其他人)。

+0

只是個人喜好,但也看看[iBatis](http://ibatis.apache.org/)/ [myBatis](http://code.google.com/p/mybatis/) – Bogdan