2012-12-20 45 views
0

這是一個初學者問題,也許我錯過了一些顯而易見的事情,但我應該如何使用TableModeljdbc來顯示引用表中的另一個字段的值而不是外鍵的值?如何用jdbc中的swing替換另一個外鍵?

想到兩種可能的解決方案,但我對他們並不滿意。 (他們來了,但請注意,如果有更好的解決方案,我並不堅持我的想法應該在答案中得到解決。)

一個是在被引用的表上進行查詢以獲取每個外部的替代值 - 關鍵字段值爲getValueAt。這看起來效率不高(即使緩存),我不知道應該如何與編輯同步並將更改後的數據寫回到表中。

另一個是用SQL查詢替換/中的字段的值。這不會使更新/插入過於簡單,但可以使用視圖進一步提高。看起來像一個工作的解決方案,但我真的需要改變我的數據庫只是爲了使用它與一個簡單的Java應用程序?

有沒有更好的解決方案/是否有什麼錯誤/我是否是錯的? :)

應支持讀取,更新,插入,刪除。我使用的是mysql(和/或sqlite)。

+0

是否有「從引用表中顯示另一個字段的值而不是外鍵的值」的術語? :) – n611x007

+0

我們可以推斷出你有一個RDBMS,並且你想要做的是用聯接編寫一個選擇查詢。如果你使用JPA,你可以使用一個渴望的獲取來爲你做,但這是另一回事。嘗試編寫一些sql來獲得你想要的,然後添加Java/Table /等。 – Romski

+0

@Romski我實際上有一個加入選擇查詢什麼纔剛剛得到我想要的。但是,如果用戶編輯表格中的值,我該如何更新這些值?我是否必須使用'setValueAt'中的java代碼來反映select-join查詢中固有的複雜性(每個外鍵我想是+1語句)?感謝您提供JPA,但我現在想用jdbc嘗試它。 – n611x007

回答

1

您將需要將用戶數據轉換回您的數據庫模型。由於您使用的是jdbc,這意味着構建SQL。您應該查看PreparedStatement,查看Java tutorial的使用情況。我希望你會根據某個事件,例如保存按鈕或值更改來執行此操作。

相關問題