ehcache怎么缓存List列表啊,试了下,怎么也存储不进去!求解??

onse 发布于 2012/04/07 18:34
阅读 4K+
收藏 0
加载中
0
onse
onse
package com.mytest.web.dao.imp;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;

import com.mytest.init.info.InitCacheManager;
import com.mytest.init.info.InitConnection;
import com.mytest.init.info.Mylog;
import com.mytest.web.dao.ObjectDao;

@SuppressWarnings("all")
public class StudentDao implements ObjectDao<Object[], Object>
{
	private QueryRunner run = new QueryRunner(InitConnection.getDs(), true);

	/**
	 * 取得数据集
	 * 
	 * @param "sql"XML文件中查找到的SQL语句
	 * @param "t"XML文件中查找到的SQL语句对应的参数
	 * @param "o"数据操作类型1、是查询操作2、添加、删除、修改
	 */
	public List<Object[]> getRs(Object sql, Object[] t, int o)
	{
		List<Object[]> stulist = new ArrayList<Object[]>();
		Cache cm = InitCacheManager.getCacheManager().getCache("DataCache");
		try
		{
			switch (o)
			{
			case 1:
				if (t != null)
				{
					if (cm.get("datalist") == null)
					{
						stulist = run.query(sql.toString(), new ArrayListHandler(), t);
						cm.put(new Element("datalist", stulist));
					} else
					{
						stulist = (List) cm.get("datalist");
					}
				} else
				{
					if (cm.get("datalist") == null)
					{
						stulist = run.query(sql.toString(), new ArrayListHandler());
						cm.put(new Element("datalist", (Serializable)stulist));
					} else
					{
						stulist = (List) cm.get("datalist").getObjectValue();
					}
				}
				Mylog.sqlInfo(sql);
				break;

			case 2:
				if (t != null)
				{
					stulist.add(new Object[]{ run.update(sql.toString(), t) });
				} else
				{
					stulist.add(new Object[]{ run.update(sql.toString()) });
				}
				Mylog.sqlInfo(sql);
				break;
			}

		} catch (SQLException e)
		{
			e.printStackTrace();
		}
		return stulist;
	}
}

onse
onse
忘记贴代码了!
0
Samuel、
Samuel、
你的问题解决了没?
onse
onse
回复 @Samuel、 : List里面要存放序列化过的对象!!唉,这样,是不是太不爽了!
Samuel、
Samuel、
@senge 我也遇到了,哈哈!
onse
onse
没有呢?难道你有办法???
0
罪恶的花生
罪恶的花生
//用这个函数强制转换
public static <T> List<T> CovertSerializabelList(List<?> lists){
	List lists2 = new ArrayList();
	for (Object object : lists) {
		lists2.add((Serializable)object);
	}
	return lists2;
}

 

0
后名
后名
不知道put方法是不是同步的
返回顶部
顶部