⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbocache.java

📁 简易java框架开源论坛系统,简 易java框架开源论坛系统
💻 JAVA
字号:
package com.easyjf.dbo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import com.easyjf.cache.CacheManager;
import com.easyjf.cache.ICache;

abstract public  class DboCache {
private static ICache cache;
public static  ICache getCache()
{	
	if(cache==null)initCache();
	return cache;
}
public static void clearRelativeKey(String tableName,Object cid)
{
	String s=tableName+":"+cid;
	List list=new ArrayList();
	Iterator it=cache.getKeySet().iterator();	
	while(it.hasNext())
	{
		String key=(String)it.next();
		if(key.endsWith(":"+s))list.add(key);
	}
	if(list!=null)
	{
		for(int i=0;i<list.size();i++)
			{
			try{
			cache.remove(list.get(i));
			}
			catch(Exception e)
			{				
			}
			}
	}
}
public static boolean remove(String key)
{
	boolean ret=false;
	try{
	cache.remove(key);
	ret=true;
	}
	catch(Exception e)
	{		
	}
	return ret;
}
public static void removeElement(Object obj)
{
	cache.removeElement(obj);
}
public static Object get(Class cls,Object id)
{	
	String key=getKey(cls,id);
	return findCacheObj(key);
}
public static Object get(String sql)
{			
	String key=getKey(sql);
	return findCacheObj(key);
}
public static Object get(String sql,Collection paras)
{	
	String key=getKey(sql,paras);
	return findCacheObj(key);
}
public static Object get(String sql,Collection paras,int begin,int max)
{	
	String key=getKey(sql,paras,begin,max);
	return findCacheObj(key);
}
public static Object get(Class cls,String sql)
{	
	String key=getKey(cls,sql);
	return findCacheObj(key);
}
public static Object get(Class cls,String sql,Collection paras,int begin,int max)
{	
	String key=getKey(cls,sql,paras,begin,max);
	return findCacheObj(key);
}

//定义保存缓存的方法
public static void put(Class cls,Object id,Object obj)
{	
	String key=getKey(cls,id);
	addCacheObj(key,obj);
}
public static void put(String sql,Object obj)
{	
	String key=getKey(sql);
	addCacheObj(key,obj);
}
public static void put(String sql,Collection paras,Object obj)
{	
	String key=getKey(sql,paras);
	addCacheObj(key,obj);
}
public static void put(String sql,Collection paras,int begin,int max,Object obj)
{	
	String key=getKey(sql,paras,begin,max);
	addCacheObj(key,obj);
}
public static void put(Class cls,String sql,Object obj)
{	
	String key=getKey(cls,sql);
	addCacheObj(key,obj);
}
public static void put(Class cls,String sql,Collection paras,Object obj)
{	
	String key=getKey(cls,sql,paras);
	addCacheObj(key,obj);
}
public static void put(Class cls,String sql,Collection paras,int begin,int max,Object obj)
{	
	String key=getKey(cls,sql,paras,begin,max);
	addCacheObj(key,obj);
}

//生成缓存键
public static String getKey(String sql)
{	
	return getKey(sql,null);
}
public static String getKey(String sql,Collection paras)
{
	return getKey(sql,paras,0,0);
}
public static String getKey(String sql,Collection paras,int begin,int max)
{
	String s="";
	if(paras!=null){
	Iterator it=paras.iterator();
	while(it.hasNext())
	{
		s+=it.next();
	}}
	String ret="SQL:"+sql+":PARAS"+s+":"+begin+":"+max;	
	return ret;
}

public static String getKey(Class cls,Object id)
{
	String ret="OBJECT:"+cls.getName()+":"+id.toString();	
	return ret;
}
public static String getKey(Class cls,String sql)
{
	return getKey(cls,sql,null);
}
public static String getKey(Class cls,String sql,Collection paras)
{
	return getKey(cls,sql,paras,0,0);
}
public static String getKey(Class cls,String sql,Collection paras,int begin,int max)
{	
	String s="";
	if(paras!=null){
	Iterator it=paras.iterator();
	while(it.hasNext())
	{
		s+=it.next();
	}
	}
	String ret="CLASS:"+cls.getName()+":SQL"+sql+":PARAS"+s+":"+begin+":"+max;	
	return ret;
}

//私有类调用缓存处理
private static Object findCacheObj(String key)
{
	if(cache==null)initCache();	
	Object ret=null;
	if(cache!=null){
	try{
	ret= cache.get(key);
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
	}
	return ret;
}
private static void addCacheObj(String key,Object obj)
{
	if(cache==null)initCache();	
	if(cache!=null){
	try{
	cache.put(key,obj);
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
	}
}
private static void initCache()
{
	cache=CacheManager.getInstance().getCache("EasyDBO");
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -