>  기사  >  Java  >  JAVA Mall 실용적인 비동기 로딩 분류, Redis Cache 분류 및 제품 표시

JAVA Mall 실용적인 비동기 로딩 분류, Redis Cache 분류 및 제품 표시

巴扎黑
巴扎黑원래의
2017-06-23 16:28:192310검색

오늘의 과제

  • 분류 모듈 기능 완성

  • 제품 모듈 기능 완성

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;

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=&#39;#&#39;>" + n.cname + "</a></li>");

        });

    }, "json");

});

3. 캐싱 기술 사용: 프로그램 최적화

* 캐시: 실제로는 데이터 소스에서 데이터를 가져와서 저장할 수 있는 공간입니다. 데이터를 나중에 가져오세요. 그렇다면 캐시에서 가져오세요.

* Memcache :

* EHCache: Hibernate에서 일반적으로 사용하는 2단계 캐시 플러그인입니다.

* 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; 

    }

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;

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();

        }

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";

    }

1.2.4 카테고리 아래에 제품 표시:

1. 홈페이지에서 카테고리 링크를 클릭하세요:

2. 서블릿에 제출:

* 매개변수 수신: 카테고리 ID

* 현재 페이지: 현재 페이지 번호 1

* 호출 비즈니스 레이어:

* 캡슐화 PageBean:

* 페이지 점프:

위 내용은 JAVA Mall 실용적인 비동기 로딩 분류, Redis Cache 분류 및 제품 표시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.