2011-06-03 71 views
1

在搜索應用程序中,我需要跟蹤文件及其位置。目前我正在爲此使用數據庫表,但由於每次需要檢索此類數據時都必須連接到數據庫,因此這顯然效率不高。有沒有一種方法可以將表格加載到內存中並使用它?當它在內存中時我不需要修改它。將數據庫表加載到要使用的內存

謝謝!

+0

我不太明白。你的意思是我必須努力工作嗎? – Izza 2011-06-03 15:05:31

回答

2

如果您只想將一張表檢索到內存中,則可以使用單個SELECT語句執行此操作。您可以從ResultSet構建一個像Map一樣的集合。之後,從地圖獲取所需的信息。

+0

+1。我也認爲這是最好的方式,因爲我不需要在記憶中修改它。 – Izza 2011-06-03 08:52:54

+1

即使您確實需要對其進行修改,您也可以更新表並對內存中的副本進行相同的更新。 – 2011-06-03 15:11:28

1

您可以填充那些有內存模式的幾個Java數據庫中的任何一個,如HSQLDB,DerbyH2。你也可以看看SQLite,它不是特別的Java,但有this Q&A here on StackOverflow中描述的各種Java連接器。您可以使用connection pool來管理一組您可以重複使用的連接。由於通常主延遲是建立連接,這可能會導致相當多的每個查詢開銷。

0

您的句子「我不需要在記憶中修改它。」並不反映您的問題的標題,您顯然希望在使用該數據後修改提交數據。

如果您只是想加快您的應用程序,爲什麼不將數據存儲在某種變量中?根據你的開發工具,它可能是某種會話變量。

+0

是的,我現在糾正了。在桌子上時,我不需要修改它。對不起,錯誤! – Izza 2011-06-03 08:51:36

1

您也可以使用Ehcache,Memcache,Coherence等許多緩存產品。我有一些使用Ehache的知識。配置Hibernate來緩存特定的查詢或實體對象或POJO。具有相同條件的所有後續搜索將從緩存中提取。

我相信其他產品也提供類似的功能。

相關問題