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());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值