本帖最后由 谷粒姐姐 于 2018-6-7 11:15 编辑
第19章WEB19-网上商城实战篇今日任务 Ø 完成分类模块的功能 Ø 完成商品模块的功能 1.1 前台分类模块的功能:1.1.1 需求:1.1.2 分析:使用异步的方式完成分类的加载: 1.1.3 代码实现:在首页上添加事件: $(function(){ 异步加载分类的数据; }); 创建分类的表: CREATE TABLE `category` ( `cid` varchar(32) NOT NULL, `cname` varchar(20) DEFAULT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 创建分类的相关的类: 相关代码的实现:异步加载分类,显示JSON数据: 每个页面上都由分类的信息,每次进行页面跳转的时候都需要去连接数据库进行查询:这样效率很低.需要优化当前程序!!! * 将数据存入到缓存中,每次获取的时候从缓存中进行获取. * EHCache:Hibernate框架 二级缓存使用 * Memcached * Redis * 使用缓存的技术优化程序!!! * 引入ehcache的包: * 代码实现: [AppleScript] 纯文本查看 复制代码 @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;
} 1.2 前台商品信息的显示:1.2.1 首页上最新商品和热门商品的显示:创建商品表 [AppleScript] 纯文本查看 复制代码 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; 创建相关的类: 在IndexServlet调用业务层完成查询即可: 1.2.2 显示某个分类的商品:在首页上点击某个分类: 提交到Servlet:传递分类的ID,当前页数. 1.2.3 显示某个商品详情:在商品列表页面上点击【某个商品】 提交到Servlet:传递一个pid. 1.2.4 登录的验证码及自动登录及记住用户:
|