분류 모듈 기능 완성
제품 모듈 기능 완성
CREATE TABLE `category` ( `cid` varchar(32) NOT NULL, `cname` varchar(20) DEFAULT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
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"); });
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; }
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;
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(); }
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. 서블릿에 제출:
* 매개변수 수신: 카테고리 ID
* 현재 페이지: 현재 페이지 번호 1
* 호출 비즈니스 레이어:
* 캡슐화 PageBean:
* 페이지 점프:
위 내용은 JAVA Mall 실용적인 비동기 로딩 분류, Redis Cache 분류 및 제품 표시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!