首页 > Java > java教程 > 正文

JAVA商城实战之异步加载分类、Redis缓存分类和显示商品

巴扎黑
发布: 2017-06-23 16:28:19
原创
2492人浏览过

今日任务

  • 完成分类模块的功能

  • 完成商品模块的功能

1.1      分类模块的功能:

1.1.1    查询分类的功能:

1.1.2    查询分类的代码实现:

1.1.2.1  创建表:

CREATE TABLE `category` (

  `cid` varchar(32) NOT NULL,

  `cname` varchar(20) DEFAULT NULL,  PRIMARY KEY (`cid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;
登录后复制

 

立即学习Java免费学习笔记(深入)”;

商汤商量
商汤商量

商汤科技研发的AI对话工具,商量商量,都能解决。

商汤商量 36
查看详情 商汤商量

1.1.2.2  功能实现:

1.直接查询所有分类:

CategoryDao categoryDao = new CategoryDaoImpl();

List<Category>  list = categoryDao.findAll();
登录后复制

2.异步加载分类:

$(function() {

    $.post("/store_v2.0/CategoryServlet", {"method" : "findAll"}, function(data) {

        $.each(data, function(i, n) {

            $("#menu").append("<li><a href='#'>" + n.cname + "</a></li>");

        });

    }, "json");

});
登录后复制

 

立即学习Java免费学习笔记(深入)”;

 

3.使用缓存技术:对程序进行优化.

* 缓存:其实就是内存中的一块空间.可以使用缓存将数据源中的数据拿到,存入到内存中.后期获得数据的话 从缓存中进行获得.

* Memcache   :

* EHCache :是Hibernate常使用的二级缓存的插件.

* Redis      :

* 使用ehcache:

   * 引入jar包:

   * 引入配置文件:

 

  // 业务层查询所有分类的方法:public List<Category> findAll() throws SQLException {/* * CategoryDao categoryDao = new CategoryDaoImpl(); return

         * categoryDao.findAll();         *//** * 从缓存中查询数据:

         *  * 有数据,直接将缓存的数据返回.

         *  * 如果没有,查询数据库,数据存入到缓存中.         */List<Category> list = null; // 从缓存中进行查询:CacheManager cacheManager = CacheManager

                .create(CategoryServiceImpl.class.getClassLoader().getResourceAsStream("ehcache.xml"));

        Cache cache = cacheManager.getCache("categoryCache");

       

        Element element = cache.get("list");if(element != null){// 缓存中有数据:System.out.println("缓存中有数据...");

            list = (List<Category>) element.getObjectValue();

        }else{// 缓存中没有数据:System.out.println("缓存中没有数据...");

            CategoryDao categoryDao = new CategoryDaoImpl();

            list = categoryDao.findAll();

            Element e = new Element("list", list);// cache.cache.put(e);

        }return list; 

    }
登录后复制

 

立即学习Java免费学习笔记(深入)”;

1.2      前台页面上的商品显示:

1.2.1    商品显示准备工作:

1.2.1.1  创建表:

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` datetime DEFAULT NULL,

  `is_hot` int(11) DEFAULT NULL,-- 1:热门

  `pdesc` varchar(255) DEFAULT NULL,

  `pflag` int(11) DEFAULT NULL,-- 1:下架

  `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;
登录后复制

 

立即学习Java免费学习笔记(深入)”;

1.2.1.2  创建类:

 

1.2.2    首页上的热门商品的显示和最新商品的显示

       

 ProductService productService = new ProductServiceImpl();try {// 查询热门商品:List<Product> hotList = productService.findByHot();// 查询最新商品:List<Product> newList = productService.findByNew();

           

            req.setAttribute("hotList",hotList);

            req.setAttribute("newList",newList);

           

        } catch (SQLException e) {

            e.printStackTrace();throw new RuntimeException();

        }
登录后复制

 

立即学习Java免费学习笔记(深入)”;

1.2.3    商品详情的显示

    

public String findById(HttpServletRequest req,HttpServletResponse resp){// 接收参数:String pid = req.getParameter("pid");// 调用业务层:ProductService productService = new ProductServiceImpl();try {

            Product product = productService.findById(pid);

            req.setAttribute("product",product);

        } catch (SQLException e) {

            e.printStackTrace();throw new RuntimeException();

        }// 页面跳转return "/jsp/product_info.jsp";

    }
登录后复制

 

立即学习Java免费学习笔记(深入)”;

1.2.4    显示某个分类下的商品:

1.在首页上点击分类的链接:

2.提交到Servlet:

    * 接收参数:分类的ID

    * 当前页面:当前页数1

    * 调用业务层:

         * 封装PageBean:

   * 页面跳转:

 

 

以上就是JAVA商城实战之异步加载分类、Redis缓存分类和显示商品的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号