Java 利用Map實現緩存


一、緩存工具類

package com.zsplat.yyzx.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 緩存機制
 */
public class CacheUtil {
    private static CacheUtil cacheUtil;
    private static Map<String,Object> cacheMap;

    private CacheUtil(){
        cacheMap = new HashMap<String, Object>();
    }

    public static CacheUtil getInstance(){
        if (cacheUtil == null){
            cacheUtil = new CacheUtil();
        }
        return cacheUtil;
    }

    /**
     * 添加緩存
     * @param key
     * @param obj
     */
    public void addCacheData(String key,Object obj){
        cacheMap.put(key,obj);
    }

    /**
     * 取出緩存
     * @param key
     * @return
     */
    public Object getCacheData(String key){
        return cacheMap.get(key);
    }

    /**
     * 清楚緩存
     * @param key
     */
    public void removeCacheData(String key){
        cacheMap.remove(key);
    }
}

二、寫一個定時器  定時從數據庫里查出數據添加到緩存中 

  CacheUtil.getInstance().addCacheData("cacheYYZS100New", cacheMap);

三、取出緩存

  Map<String , Object> cacheMap = (Map<String, Object>)CacheUtil.getInstance().getCacheData("cacheYYZS100New");

  存緩存和取緩存的方法,知道類型的話,強制轉換都沒問題

四、分頁   捋清楚startIndex和pageSize,count之前的關系就行   用截取list的方法實現分頁

if(StringUtils.isNotEmpty(startIndex)&&StringUtils.isNotEmpty(pageSize)){
                Integer start = Integer.parseInt(startIndex);
                Integer size = Integer.parseInt(pageSize);
                if(size*(start+1)<resultCount){
                    dataList = dataList.subList(start*size,size*(start+1));
                }else if(start*size<resultCount){
                    dataList = dataList.subList(start*size,resultCount);
                }else{
                    dataList = new ArrayList<>();
                }
            }

 


免責聲明!

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



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