Heim > Java > javaLernprogramm > Hauptteil

JAVA Mall Praktisches asynchrones Laden von Kategorien, Redis-Cache-Kategorien und Anzeige von Produkten

巴扎黑
Freigeben: 2017-06-23 16:28:19
Original
2350 Leute haben es durchsucht

Heutige Aufgabe

  • Vervollständigen Sie die Funktionen des Klassifizierungsmoduls

  • Vervollständigen Sie die Funktionen des Produktmoduls

1.1 Funktion des Klassifizierungsmoduls:

1.1.1 Funktion der Abfrageklassifizierung:

1.1.2 Code-Implementierung der Abfrageklassifizierung:

1.1.2.1 Tabelle erstellen:

CREATE TABLE `category` (

  `cid` varchar(32) NOT NULL,

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

) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Nach dem Login kopieren

1.1.2.2 Funktionsimplementierung:

1. Alle Kategorien direkt abfragen :

CategoryDao categoryDao = new CategoryDaoImpl();

List<Category>  list = categoryDao.findAll();
Nach dem Login kopieren

2. Asynchrone Ladeklassifizierung:

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

});
Nach dem Login kopieren

3 . Caching-Technologie verwenden: Optimieren Sie das Programm.

* Cache: Es ist tatsächlich ein Speicherplatz im Speicher Wird später abgerufen, wird es aus dem Cache abgerufen.

* Memcache:

* EHCache: Es handelt sich um ein Cache-Plug-in der zweiten Ebene, das häufig von Hibernate verwendet wird.

* Redis :

* Ehcache verwenden:

* JAR-Paket einführen:

* Konfigurationsdatei einführen:

  // 业务层查询所有分类的方法: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; 

    }
Nach dem Login kopieren

1.2 Rezeption Produktanzeige auf der Seite:

1.2.1 Vorbereitung der Produktpräsentation:

1.2.1.1 Tabelle erstellen:

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;
Nach dem Login kopieren

1.2.1.2 Klasse erstellen:

1.2.2 Anzeige beliebter Produkte und neuester Produkte auf der Startseite

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

        }
Nach dem Login kopieren

1.2.3 Anzeige von Produktdetails

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

    }
Nach dem Login kopieren

1.2.4 Produkte unter einer bestimmten Kategorie anzeigen:

1 Klicken Sie auf den Kategorielink auf der Startseite:

2 🎜>

* Empfangsparameter: Kategorie-ID

* Aktuelle Seite: Aktuelle Seitennummer 1

* Aufrufende Business-Schicht:

* Kapselung von PageBean:

* Seitensprung:

Das obige ist der detaillierte Inhalt vonJAVA Mall Praktisches asynchrones Laden von Kategorien, Redis-Cache-Kategorien und Anzeige von Produkten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!