@Override
public List<Category> findAll()throws SQLException {
/*CategoryDao categoryDao = new CategoryDaoImpl();
return categoryDao.findAll();*/
/**
* 使用缓存优化程序,先从缓存中获取数据
* * 获取到:直接返回
* * 获取不到:查询数据库,将记录存入到缓存中.
*/
// 读取配置文件
CacheManager cacheManager = CacheManager.create(CategoryServiceImpl.class.getClassLoader().getResourceAsStream("ehcache.xml"));
// 从配置文件中获取名称为categoryCache缓存区
Cache cache = cacheManager.getCache("categoryCache");
// 判断缓存中是否有list集合:
Element element = cache.get("list");
List<Category> list = null;
if(element == null){
// 缓存中没有数据
System.out.println("缓存中没有数据 ,查询数据库=====");
CategoryDao categoryDao = new CategoryDaoImpl();
list = categoryDao.findAll();
element = new Element("list",list);
cache.put(element);
}else{
// 缓存中已经存在数据
System.out.println("缓存中有数据 ,没有查询数据库=====");
list = (List<Category>)element.getObjectValue();
}
return list;
}
CREATE TABLE `product` (
`pid` varchar(32) NOT NULL,
`pname` varchar(50) DEFAULT NULL,
`market_price` double DEFAULT NULL,
`shop_price` double DEFAULT NULL,
`pimage` varchar(200) DEFAULT NULL,
`pdate` date DEFAULT NULL,
`is_hot` int(11) DEFAULT NULL,
`pdesc` varchar(255) DEFAULT NULL,
`pflag` int(11) DEFAULT NULL,
`cid` varchar(32) DEFAULT NULL,
PRIMARY KEY (`pid`),
KEY `sfk_0001` (`cid`),
CONSTRAINT `sfk_0001` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |