2013-08-16 194 views
-1

因此,我將循環訪問一個數據庫,並且會有一大堆活動。每個廣告系列都會有一些演示和一些滿足特定條件的網站。我想繪製與所有廣告系列,網站和演示相對應的數據的一些圖表。我正在考慮使用java,首先獲取滿足條件的活動,站點和演示組合,然後遍歷所有這些活動,根據它們的值運行各個查詢,並使用GNU繪圖繪製圖形。我的問題是 -存儲特定結構化數據的最佳數據結構

  1. 有沒有更好的方法來實現這一點(用最少的查詢)。
  2. 如果我這樣做,我首先必須存儲信息。

我在

ArrayList<ArrayList<Integer>> 

想存儲在整數的演示,每個廣告系列的ArrayList的廣告系列ID和

ArrayList<ArrayList<Integer>> 

網站每個戰役有一個更有效的方式來存儲這些信息?

+0

您是僅僅爲了製作圖表而存儲數據,還是想長期保存它?出於製圖的目的,您的選擇可能由您選擇的任何製圖機制/庫驅動。例如,如果您想要基於Web的,則可以使用Google Charts(https://developers.google.com/chart/)等。 – lurker

+2

我個人會將每個圖表的一個查詢發送到數據庫,每個數據庫以結構形式提供數據儘可能接近圖表所需的結構。這將需要更少的代碼,因爲SQL是聲明式的,並且不需要運行嵌套循環等。數據庫被設計用於執行大量數據處理。但是你的里程可能會有所不同,特別是如果你的SQL經驗很少。 – FrankPl

+0

我不需要以後存儲數據,只需要重複。此外,還會有一大堆他們,我​​希望將它們全部保存爲文件。 GNU陰謀似乎是做這件事的一個很好的選擇,但其他的想法,如谷歌的圖表,將是偉大的。 @Frank:我目前的解決方案是爲每個組合發送一個查詢。 –

回答

0

如果您需要在內存中保留對它們的句柄(可能不需要),我建議創建一個新類來保存您的活動數據並存儲對ArrayList中每個對象的引用。

從一個純粹點,每班應通過數據訪問對象(DAO)和普通Java對象(PO​​JO)來管理內存數據庫的訪問和存儲進行備份,但如果這是一個簡單的原型,然後我不會太擔心。我還推薦一個實用程序類來轉換/編寫圖表數據 - 所有這些都可從Campaign類訪問。

Campaign類應該能夠計算出您的條件是否滿足 - 以及是否值得生成這些圖表。