在項目中利用Map實現數據緩存功能


在項目開發中,對於數據庫中不經常更改,但需要經常查詢的數據,可以使用Map將數據緩存,減少數據庫IO次數,提升性能。一下代碼是實現過去12個月,按月份查詢每個月的進出廠數量,每個月的數量不會改變。

//首先定義一個全局私有變量map
private Map<String,List<Map<String, String>>> map = new HashMap<String,List<Map<String, String>>>();

//業務方法
public ItemEntity getMonthCardIssue() throws Exception {
//map對應key的value為空時,才走數據庫查詢,並將查詢出的數據put進map里,下次查詢時就不需要從數據庫里查詢
        List<Map<String, String>> list = map.get("getMonthCardIssue");
        if(list==null || list.isEmpty()) {
            list = this.findCardNum();
            map.put("getMonthCardIssue", list);
        }
        ItemEntity item = new ItemEntity();
        List<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
        List<String> listTitle = new ArrayList<String>();
        for (int i = list.size() - 1; i >= 0; i--) {
            HashMap<String, Object> vals = new HashMap<String, Object>();
            vals.put("value", list.get(i).get("EXITNUMB"));
            listItem.add(vals);
            int month = Integer.parseInt(list.get(i).get("MONTH").substring(4));
            listTitle.add(month + "月");
        }
        Collections.reverse(listTitle);
        item.setNumber(listItem);
        item.setTitle(listTitle);
        return item;
    }

這種方法在服務器重啟時map會清空,可以實現一個接口map.clear()手動清空map


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM