2013-04-03 33 views
0

有人可以請解釋解決這個問題的最佳途徑。java類和數據庫查詢

假設我有三個類

1.Person

2.Venue

3.Vehicle

我有一個需要從返回部分或所有這些屬性的DAO方法每個類在做一個查詢之後。

我該如何做到這一點?製作PersonVenueVehicle類並將其作爲一個對象返回以獲取實例字段值,似乎是非常錯誤的。

我被教導,數據庫實體必須通過類來體現,如果是這種情況下,它是如何在這種情況下

+0

他們如何彼此關聯? – Makoto 2013-04-03 21:51:51

+0

您已經擁有數據庫嗎?還是僅僅試圖建立它? – 2013-04-03 21:53:20

+1

創建一個新對象來保存這些類型,如果它沒有被持久化,它不一定是一個實體。 – 2013-04-03 21:56:10

回答

2

嘗試春節十歲上下的解決方案來實現。除了你的三個班,你可以有3個DAO班,每班一班。但你有一個任務要執行;我不知道它是什麼;我只是猜測。

假設您正在運行出租車服務; Person的時間表通過你的公司出租車在Venue接他們,你發送他們Vehicle。把這個組合稱爲Trip,現在你想要一個在數據庫中管理Trip的類。創建一個名爲TripService的類。這應該用你的PersonDao,你VenueDao,和你VehicleDao創建,如果在數據庫中需要的人,地點記錄,以及應該如何選擇使用哪個Vehicle所需的計算。當它發生時,它應該使用新的TripDao來堅持一個新的Trip對象。但是,作爲組織者,它應該創建並銷售與所有DAO的數據庫連接,並且應該自己進行提交或回滾。

如果您使用的是Hibernate或JPA,則可以修改您的類。但原則是一樣的。即使我的動機錯誤,您也可以編寫一個協調三個DAO併發布連接的服務。如果必須的話,它可以使用連接本身在三個表上連接在一起進行SELECT。

你失去很多的數據庫的好處,如果你寫的唯一的語句是簡單的選擇和更新和插入

+0

我既沒有使用一個DAO。不是我的想法,只是我得到的要求 – Marc 2013-04-03 22:49:02

+0

所有三個業務類別都有一個DAO? *那*如何成爲一項要求?儘管有這個要求,我會將你的一個DAO分成三個。課程應該有一個目的。它不會傷害任何東西,它會改善你的程序。 – 2013-04-03 23:39:43

+0

這只是一個要求,你是對的! – Marc 2013-04-04 00:23:58