?? dbocache.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 + -