2007年9月11號工作總結
阿新 • • 發佈:2019-01-07
今天主要做了民政統計專案單位檢視功能的後臺程式碼的編寫。
在考慮分頁功能實現時,主要有兩種方式,一種是每次定位到指定頁時,都要從查詢一次,根據頁碼在結果中獲取相應頁的記錄,另一種方式是能把結果快取下來,然後從結果中查詢指定分頁的記錄,第二種方式會很快,因為不用再根據條件重新查詢一次。但是查詢結果要儲存下來就要作快取,做類級別的快取不現實,因為如果把每次查詢的結果都儲存在類的快取中,那記憶體會迅速耗盡;因此考慮用物件級別的快取,但是每次發起一個根據頁碼查詢記錄的請求都要重新生成一個物件,所以要想辦法把物件儲存起來,下次處理情求時直接使用這個物件,因此我決定使用類似儀表盤專案中的快取,用一個快取類把生成的物件儲存起來,
在頁面上儲存這個物件對應的guid,下次處理請求時通過guid取出這個物件使用。而且快取類有定時銷燬物件的機制,設定一個超時時間,比如五分鐘,如果此時間內,某個物件沒有被get過,則銷燬此物件,以提高效能,節省記憶體。
查詢單位時一般通過UnitGroupTree的方法進行。
在引數客戶端,一個業務方案定義了一段時間,這一段時間可以跨幾個基礎表方案,對於每個基礎表方案都可以設定單位過濾條件,所以對於每個基礎表方案都可以有其一個相應的單位列表,因此在獲得UnitGroupTree的物件的時候,是通過時期和單位過濾條件來得到的,步驟如下:
SolutionItem soluItem = se.getSolution(solutionGuid);
String reportgroupguid = soluItem.otherDateReportGroupGuid(dataPeriod);//根據時期獲得基礎表方案guid
ReportGroupItem reportGroupItem = sessionEnv.getReportGroupByGuid(
reportgroupguid);
String unitfilter = reportGroupItem.getUnitfilter();//獲得報表方案的單位過濾條件
unitGroupTree = sessionEnv.getDataManager().getGroupTree(unitfilter,dataPeriod);//根據時期和單位過濾條件獲得unitGroupTree。