java緩存對象,使之不需要每次都從數據庫中獲取,以提高程序性能

直接上源碼,定義一個抽象類,必須實現get方法。該方法是用來獲取需要緩存的對象的。 


import java.util.HashMap;
import java.util.Map;
/**
 * 用於從數據庫中獲取相應值的緩存類
 * @author pdy
 *
 * @param <K,T>
 */
public abstract class CacheGetUtils<T,C,K>  {
	private Map<K,T> list = new HashMap<K,T>();
	public abstract T getModel(C c, K k) throws Exception;
	public T get(C c, K k) throws Exception{
		if(list.containsKey(k)) {
			return list.get(k);
		}
		T t= this.getModel(c,k);
		list.put(k, t);
		return t;
	}	
}

在實際的應用中,實現這一個類,該類有從數據庫中獲取對象的方法。

CacheGetUtils<Pointproducts,Long,Long> cacheProducts = new CacheGetUtils<Pointproducts,Long,Long>() {
				@Override
				public Pointproducts getModel(Long c, Long k) throws Exception {
					Pointproducts product = pointProductService.selectByPrimaryKey(c, k);
					return  product;
				}			
			};

這樣可以直接使用該類獲取緩存對象了。

order.setProductname(cacheProducts.get(companyid, collect.get(0).getProductid()).getProductname());

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章