Maison  >  Article  >  Java  >  JAVA Mall Chargement asynchrone pratique des catégories, catégories de cache Redis et affichage des produits

JAVA Mall Chargement asynchrone pratique des catégories, catégories de cache Redis et affichage des produits

巴扎黑
巴扎黑original
2017-06-23 16:28:192342parcourir

Tâche du jour

  • Remplir les fonctions du module de classification

  • Remplir les fonctions du module produit

1.1 Fonction du module de classification :

1.1.1 Fonction de classification des requêtes :

1.1.2 Implémentation du code de classification des requêtes :

1.1.2.1 Créer une table :

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 Implémentation de la fonction :

1. :

CategoryDao categoryDao = new CategoryDaoImpl();

List<Category>  list = categoryDao.findAll();

2. Classification de chargement asynchrone :

$(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. . Utiliser la technologie de mise en cache : Optimisez le programme

* Cache : Il s'agit en fait d'un espace dans la mémoire pour récupérer les données de la source de données et les stocker dans la mémoire. est obtenu plus tard, il sera obtenu à partir du cache .

* Memcache :

* EHCache : Il s'agit d'un plug-in de cache de deuxième niveau couramment utilisé par Hibernate.

* Redis :

* Utiliser ehcache :

* Présenter le package jar :

* Présenter le fichier de configuration :

  // 业务层查询所有分类的方法: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 Réception Affichage du produit sur la page :

1.2.1 Préparation de l'affichage du produit :

1.2.1.1 Créer un tableau :

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 Créer une classe :

1.2.2 Affichage des produits populaires et des derniers produits sur la page d'accueil

 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 Affichage des détails du produit

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 Afficher les produits dans une certaine catégorie :

1 Cliquez sur le lien de la catégorie sur la page d'accueil :

2. 🎜>

* Paramètres de réception : ID de catégorie

* Page actuelle : Page actuelle numéro 1

* Couche métier appelante :

* Encapsulation du PageBean :

* Saut de page :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn