Maison > Java > javaDidacticiel > le corps du texte

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

巴扎黑
Libérer: 2017-06-23 16:28:19
original
2363 Les gens l'ont consulté

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;
Copier après la connexion

1.1.2.2 Implémentation de la fonction :

1. :

CategoryDao categoryDao = new CategoryDaoImpl();

List<Category>  list = categoryDao.findAll();
Copier après la connexion

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

});
Copier après la connexion

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; 

    }
Copier après la connexion

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;
Copier après la connexion

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

        }
Copier après la connexion

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

    }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal