2013-03-07 138 views
0

使用Spring和JDBCTemplates(無ORM),我有一個DAO是違背了CMS數據庫。每個數據庫連接一個DAO?

我現在有一個需要訪問其它數據庫。我應該創建一個單獨的DAO還是使用一個大的DAO?要麼在我的情況下工作。我有一個接口,但它不是一個通用接口。除了插入到審計表中,我所做的只是檢索值。所以我不覺得我需要爲每個表單獨提供一個CRUD服務,根據這個link

我不認爲它真的很重要,但一個數據庫是MySQL,另一個是Oracle。

回答

3

您可以通過谷歌搜索,但閱讀有關DAO模式,在一般情況下,爲每個相關的表「表」或組創建一個DAO。我不知道這是'數據庫'的意思。有些人使用這種方式。 (你更新你的問題解釋「數據庫」所以,你會通常有每個數據庫的多個DAO每桌一個或一組相關的表。)

所以「是」

注意:當我說「相關表「我可能需要解釋。例如,如果您有發票表和invoice_detail表。詳細信息行通常會像紙質發票上的一行,並將外鍵返回到發票表中的發票編號或發票編號。有兩張表,但你可能會有一個單獨的DAO來處理髮票和與它們相關的細節。可能有一些方法可以按發票號碼和客戶及其一大堆日期獲得發票,也可以在一個月內獲取具有特定項目的所有發票。將會有方法來創建發票並在其上創建所有的行。等等。一個DAO,但多個表。

細節線可能有外鍵指向了一個「零件」表上的部分細節。您可能需要閱讀零件信息並將其與發票一起寄回,並且您在閱讀發票後可能需要單獨閱讀零件。在後一種情況下,將有第二個DAO具有讀取和可能修改零件記錄的方法。

這個例子假設這些都在同一個數據庫中,無論是MySQL或甲骨文。

0

你可以爲每個表或數據實體的多個「道」在Spring應用程序,但你還是應該隔離你的數據庫調用加上春季需要知道不同的連接參數,並可以在ApplicationContext中使用DAO的定義分開。這聽起來像是一個REST Web服務的候選人來處理您從其他數據庫中檢索。

1

你應該注入到DataSource你的DAO,你反過來用於創建SimpleJdbcTemplate。由於DataSource連接到特定數據庫,因此您需要爲每個數據庫單獨使用DAO/DataSource s/SimpleJdbcTemplate

相關問題