這是一個初學者問題,也許我錯過了一些顯而易見的事情,但我應該如何使用TableModel
和jdbc
來顯示引用表中的另一個字段的值而不是外鍵的值?如何用jdbc中的swing替換另一個外鍵?
想到兩種可能的解決方案,但我對他們並不滿意。 (他們來了,但請注意,如果有更好的解決方案,我並不堅持我的想法應該在答案中得到解決。)
一個是在被引用的表上進行查詢以獲取每個外部的替代值 - 關鍵字段值爲getValueAt
。這看起來效率不高(即使緩存),我不知道應該如何與編輯同步並將更改後的數據寫回到表中。
另一個是用SQL查詢替換/中的字段的值。這不會使更新/插入過於簡單,但可以使用視圖進一步提高。看起來像一個工作的解決方案,但我真的需要改變我的數據庫只是爲了使用它與一個簡單的Java應用程序?
有沒有更好的解決方案/是否有什麼錯誤/我是否是錯的? :)
應支持讀取,更新,插入,刪除。我使用的是mysql(和/或sqlite)。
是否有「從引用表中顯示另一個字段的值而不是外鍵的值」的術語? :) – n611x007
我們可以推斷出你有一個RDBMS,並且你想要做的是用聯接編寫一個選擇查詢。如果你使用JPA,你可以使用一個渴望的獲取來爲你做,但這是另一回事。嘗試編寫一些sql來獲得你想要的,然後添加Java/Table /等。 – Romski
@Romski我實際上有一個加入選擇查詢什麼纔剛剛得到我想要的。但是,如果用戶編輯表格中的值,我該如何更新這些值?我是否必須使用'setValueAt'中的java代碼來反映select-join查詢中固有的複雜性(每個外鍵我想是+1語句)?感謝您提供JPA,但我現在想用jdbc嘗試它。 – n611x007