2010-06-07 20 views
0

我用Java編寫了一個應用程序。我得到一個表格(客戶端)的數據庫,其中包含以下字段:Java:從數據庫存儲信息。什麼樣的藏品適合?

name |姓氏地址

將這些數據存儲在我的應用程序中的最佳解決方案是什麼?我應該爲每個客戶創建一個對象並將這些對象存儲在列表或集合中嗎?

該表包含約100條記錄,並且已經排序。 在此先感謝。

回答

4

最簡單的方法是創建一個包含對應於數據庫列(姓名,地址)字段的類。然後,正如您已經說過的那樣,爲表格中的每一行創建此類的實例,並將它們存儲在List中。

一個Set不會是合適的,因爲大多數Set實現(例如HashSet)是沒有順序的,所以如果您的數據進行排序時,Set將不保留排序順序。 A訂購List

獲取數據從數據庫中,你可以簡單地把它在JDBC自己的計劃,這是在這種情況下很簡單:打開到數據庫的連接,執行SQL查詢,遍歷的ResultSet行,創建爲每行添加一個對象,並使用從ResultSet獲得的數據填充它,將創建的對象存儲在List中。

當你的數據模型比單級更復雜,它可能是值得使用object-relational mapping(ORM)框架。 Java有一個標準的API,Java Persistence API(JPA)。 Hibernate是這個API的流行實現。

+0

如果客戶想要優化搜索,讓她使用數據庫來完成。 – 2010-06-07 14:05:26

+0

['LinkedHashSet'](http://java.sun.com/javase/6/docs/api/java/util/LinkedHashSet.html)是按照像List這樣的插入順序排列的。 – BalusC 2010-06-07 14:05:40

+0

@BalusC是的,這是一個保留順序的Set實現,但也要記住它不允許重複,並且如果你想要的話,你的數據類需要正確地實現equals()和hashCode()用這個。 – Jesper 2010-06-07 14:08:15

0

儘管Hibernate對於你正在做的事情可能是過度的,但你可能仍然想要檢查它。如果你最終要做的不僅僅是檢索,而且還需要投入一些時間(以後可以爲你節省大量的工作)。

根據您與記錄做什麼,你可以把它們留在您的記錄,在它們之間迭代,做任何你想要他們。如果你需要和他們一起做一些工作,那麼是的,把每個對象放在一個對象中,並把這些對象放到某種類型的集合中(ArrayList會保持它們爲你排序)。

0

您應該爲該對象創建一個類,然後創建一個對象列表,每個對象對應一個表記錄。

如果你打算經常這樣做,我會建議使用一個像Hibernate這樣的工具來使這個過程變得簡單和自動化,所以你不必總是手動創建和填充類並與之交互數據庫你自己。

相關問題