IDEA+Java+SSM+Mysql+Bootstrap+Maven实现网上书城系统
目錄
一、系統(tǒng)介紹
1.開發(fā)環(huán)境
2.技術(shù)選型
3.系統(tǒng)功能
4.數(shù)據(jù)庫文件
二、系統(tǒng)展示
1.首頁展示
2.系統(tǒng)注冊
3.系統(tǒng)登錄
4.登錄首頁
5.書籍查看
6.書籍明細
7.購物車明細
三、部分代碼
LoginController
MainController
RegisterController
pom.xml
四、其他
1.更多系統(tǒng)
Java+JSP系統(tǒng)系列實現(xiàn)
Java+Servlet系統(tǒng)系列實現(xiàn)
Java+SSM系統(tǒng)系列實現(xiàn)
Java+SSH系統(tǒng)系列實現(xiàn)
Java+Springboot系統(tǒng)系列實現(xiàn)
2.源碼下載
3.備注
4.支持博主
一、系統(tǒng)介紹
1.開發(fā)環(huán)境
開發(fā)工具:IDEA2018
JDK版本:jdk1.8
Mysql版本:8.0.13
2.技術(shù)選型
Java+Spring+SpringMVC+Mybatis+Bootstrap+Mysql+Maven
3.系統(tǒng)功能
用戶
1.注冊
2.登錄
3.瀏覽書籍
4.購買書籍
4.數(shù)據(jù)庫文件
/*Navicat Premium Data TransferSource Server : MySQLSource Server Type : MySQLSource Server Version : 80013Source Host : 127.0.0.1:3306Source Schema : ssm_maven_bookstoreTarget Server Type : MySQLTarget Server Version : 80013File Encoding : 65001Date: 02/12/2021 21:32:11 */SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table structure for book -- ---------------------------- DROP TABLE IF EXISTS `book`; CREATE TABLE `book` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`author` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`press` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`pubdate` date NOT NULL,`price` double(3, 1) NOT NULL,`page` int(3) NOT NULL,`img` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`feature` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`booktype` int(5) NOT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of book -- ---------------------------- INSERT INTO `book` VALUES (1, '圖解Java多線程設(shè)計模式', '侯振龍', '圖靈出版社', '2017-08-22', 89.0, 360, 'java01.jpg', '編寫了300個示例程序來實現(xiàn)設(shè)計模式,掌握這些設(shè)計模式可以避免程序發(fā)生死鎖、節(jié)省資源、提高性能等,讓多線程程序更高效。java.util.concurrent包、synchronized關(guān)鍵字、Swing框架、Java內(nèi)存模型等內(nèi)容也均有涉及,不僅能夠了解Java多線程的相關(guān)知識,還可加深對Java語言的理解。', 1); INSERT INTO `book` VALUES (2, 'Java編程思維', 'Allen B. Downey', '人民出版社', '2016-12-15', 59.0, 220, 'java02.jpg', '本書是一本實用的計算機入門教程,目前已被眾多大學(xué)和高中選作教材。書中不僅介紹Java編程,還闡明如何養(yǎng)成計算機科學(xué)家才具備的思維方式,讓讀者學(xué)會怎樣將編程作為實現(xiàn)目的的手段。', 1); INSERT INTO `book` VALUES (3, 'Java技術(shù)手冊(第6版)', 'Benjamin J Evans', '人民出版社', '2015-11-23', 79.0, 180, 'java03.jpg', '本書旨在幫助有經(jīng)驗的Java程序員充分使用Java 7和Java 8的功能,但也可供Java開發(fā)新手學(xué)習(xí)。書中提供了大量示例,演示了如何充分利用現(xiàn)代API和開發(fā)過程中的最佳實踐。這一版進行了全面更新。第一部分快速準(zhǔn)確地介紹了Java編程語言和Java平臺。第二部分討論了核心概念和API,展示了如何在Java環(huán)境中解決實際的編程任務(wù)。', 1); INSERT INTO `book` VALUES (4, 'Java虛擬機基礎(chǔ)教程', 'Vincent van der Leun', '圖靈出版社', '2018-03-29', 69.0, 295, 'java04.jpg', 'Java虛擬機(JVM)是開發(fā)和部署軟件的成熟的現(xiàn)代平臺,最初只有Java一門語言運行于其中。隨著Java的日益復(fù)雜以及JVM性能的增強,出現(xiàn)了新一代可在JVM中運行的編程語言。', 1); INSERT INTO `book` VALUES (5, '明解Java', '柴田望洋', '新華出版色', '2018-01-19', 99.0, 483, 'java05.jpg', '從基礎(chǔ)知識到面向?qū)ο缶幊掏耆莆?#xff01;\r\n從Java的基礎(chǔ)知識講起,循序漸進,直到面向?qū)ο缶幊痰膬?nèi)容。書中結(jié)合猜數(shù)字游戲、猜拳游戲、心算訓(xùn)練等有趣的游戲程序進行講解,讓學(xué)習(xí)過程完全不枯燥。', 1); INSERT INTO `book` VALUES (6, 'Java機器學(xué)習(xí)', 'Bo?tjan Kalu?a', '人民出版社', '2017-09-01', 49.0, 320, 'java06.jpg', '- 快速了解用Java創(chuàng)建并實現(xiàn)機器學(xué)習(xí)\r\n- 涵蓋Mahout、Weka、Spark等常見庫的功能和用法\r\n- 介紹各種常見任務(wù)的機器學(xué)習(xí)應(yīng)用,如基于數(shù)據(jù)庫的預(yù)測預(yù)報、購物籃分析、圖像識別、行為識別、文本分析等\r\n- 在線支持網(wǎng)站提供書中所有示例代碼以及其他入門資料:http://machine-learning-in-java.com', 1); INSERT INTO `book` VALUES (7, '碼農(nóng)·進擊的Java(第16期)', '圖靈社區(qū)出品', '圖靈出版社', '2015-01-21', 29.0, 183, 'java07.jpg', 'IEEE Spectrum評出的2014年十大語言,Java依然穩(wěn)坐第一。雖然每個程序員幾乎都對Java有著無盡的怨言,但是事實證明,作為一個工具Java仍然是最“好用”的。', 1); INSERT INTO `book` VALUES (8, 'Spring Boot實戰(zhàn)', 'Craig Walls', '清華大學(xué)出版社', '2016-09-05', 59.0, 224, 'java08.jpg', 'Craig Walls的著作正是Spring的完美縮影。Spring經(jīng)過了幾年的發(fā)展,技術(shù)日臻成熟,讓編程者學(xué)習(xí)負擔(dān)持續(xù)減輕,不再需要掌握那么多知識就可以寫出有趣的程序。本書堪稱Spring Boot的完美指南,面面俱到地介紹了Spring Boot特性。Spring最新的發(fā)展也都被Craig精進了此書中。浩瀚書海又迎來了一本好書,出自一位大師級作者,關(guān)于一門偉大的技術(shù)。隆重推薦給你!', 1); INSERT INTO `book` VALUES (15, '程序員的算法趣題', '增井敏克', '人民出版社', '2017-07-25', 55.0, 312, 'algorithm01.jpg', '本書通過謎題式算法解謎,可有效訓(xùn)練數(shù)學(xué)思維、算法思維,\r\n如同鍛煉大腦的趣味體操,程序員、推理解謎愛好者都會沉浸\r\n其中,找到樂趣。', 3); INSERT INTO `book` VALUES (16, '算法新解', '劉新宇', '圖靈出版社', '2016-12-20', 99.0, 592, 'algorithm02.jpg', '《算法新解》七年磨一劍,作者筆耕不輟,幾年來常在TopLanguage郵件列表中放出讓大家校對,在程序書泛濫的這個時代尤顯難能可貴。書中包含大量插圖和公式,又結(jié)合C++、Haskell、Python、Scheme等多種編程語言實現(xiàn),命令式、函數(shù)式兼顧,準(zhǔn)確細致地描述了大量基本算法和習(xí)題。', 3); INSERT INTO `book` VALUES (17, '流暢的Python', 'Luciano Ramalho', '人民出版社', '2017-05-08', 99.9, 600, 'python01.jpg', '本書由奮戰(zhàn)在Python開發(fā)一線近20年的Luciano Ramalho執(zhí)筆,Victor Stinner、Alex Martelli等Python大咖擔(dān)綱技術(shù)審稿人,從語言設(shè)計層面剖析編程細節(jié),兼顧Python 3和Python 2,告訴你Python中不親自動手實踐就無法理解的語言陷阱成因和解決之道,教你寫出風(fēng)格地道的Python代碼。?', 2); INSERT INTO `book` VALUES (18, 'Python機器學(xué)習(xí)經(jīng)典實例', 'Prateek Joshi', '新華出版社', '2017-08-17', 59.0, 244, 'python02.jpg', '用最火的Python語言、通過各種各樣的機器學(xué)習(xí)算法來解決實際問題!\r\n書中介紹的主要問題如下。\r\n- 探索分類分析算法并將其應(yīng)用于收入等級評估問題\r\n- 使用預(yù)測建模并將其應(yīng)用到實際問題中\(zhòng)r\n- 了解如何使用無監(jiān)督學(xué)習(xí)來執(zhí)行市場細分\r\n- 探索數(shù)據(jù)可視化技術(shù)以多種方式與數(shù)據(jù)進行交互\r\n-了解如何構(gòu)建推薦引擎\r\n', 2); INSERT INTO `book` VALUES (19, 'Python數(shù)據(jù)科學(xué)手冊', 'Jake VanderPlas', '青年出版社', '2018-01-30', 99.9, 448, 'python03.jpg', 'Python語言擁有大量可用于存儲、操作和洞察數(shù)據(jù)的程序庫,已然成為深受數(shù)據(jù)科學(xué)研究人員推崇的工具。本書以IPython、NumPy、Pandas、Matplotlib和Scikit-Learn這5個能完成數(shù)據(jù)科學(xué)大部分工作的基礎(chǔ)工具為主,從實戰(zhàn)角度出發(fā),講授如何清洗和可視化數(shù)據(jù)、如何用數(shù)據(jù)建立各種統(tǒng)計學(xué)或機器學(xué)習(xí)模型等常見數(shù)據(jù)科學(xué)任務(wù),旨在讓各領(lǐng)域與數(shù)據(jù)處理相關(guān)的工作人員具備發(fā)現(xiàn)問題、解決問題的能力。\r\n', 2); INSERT INTO `book` VALUES (20, 'Python數(shù)據(jù)科學(xué)入門', 'Dmitry Zinoviev', '圖靈出版社', '2017-11-08', 49.0, 145, 'python04.jpg', '- 不同類型文本數(shù)據(jù)的獲取、清洗、組織和可視化\r\n- 如何用NumPy和Pandas模塊處理數(shù)值數(shù)據(jù)\r\n- 探索用MySQL和MongoDB配置、填充、查詢數(shù)據(jù)\r\n- 網(wǎng)絡(luò)創(chuàng)建、度量和分析\r\n- 概率與統(tǒng)計以及機器學(xué)習(xí)的相關(guān)基本概念\r\n', 2); INSERT INTO `book` VALUES (21, 'Python性能分析與優(yōu)化', 'Fernando Doglio', '人民出版社', '2016-06-16', 45.0, 192, 'python05.jpg', '本書從基本的概念開始,循序漸進地介紹高級的優(yōu)化主題。首先介紹了Python的主流性能分析器,以及用于幫助理解性能分析結(jié)果的可視化工具。然后介紹了通用的性能優(yōu)化方法和專門針對Python的性能優(yōu)化方法,帶你瀏覽該語言的主要結(jié)構(gòu),讓你只需做一點改變,即可迅速改善代碼的性能。最后介紹了一些專門用于數(shù)據(jù)處理的程序庫,教你如何正確地使用它們以獲得最佳性能。\r\n', 2); INSERT INTO `book` VALUES (22, '征服C指針', '前橋和彌', '清華大學(xué)出版社', '2013-02-26', 49.0, 264, 'c01.jpg', 'C程序員必讀經(jīng)典\r\n原版暢銷11年\r\n“毒舌程序員”為你揭開指針的真實面紗\r\n', 4); INSERT INTO `book` VALUES (23, '明解C語言:中級篇', '柴田望洋', '中國人民大學(xué)出版社', '2017-09-14', 89.0, 334, 'c02.jpg', '暢銷書《明解C語言》第2彈,C語言進階不二之選!\r\n111段代碼+152幅圖表,圖文并茂,講解清晰易懂。\r\n10個有趣的游戲程序,讓你在快樂編程中學(xué)會實用技巧。\r\n雙色印刷,版式賞心悅目。\r\n本書是日本超受歡迎的C語言教程,榮獲日本工學(xué)教育協(xié)會著作獎,原版系列累計暢銷超100萬冊!\r\n', 4); INSERT INTO `book` VALUES (24, 'C語言詳解(第6版)', 'Jeri R.Hanly', '人民教育出版社', '2010-03-15', 79.0, 558, 'c03.jpg', '本書是C語言的經(jīng)典教材。它不僅深入淺出地講述了實際開發(fā)中最需要的C語言基礎(chǔ)知識,還充分介紹了動態(tài)數(shù)據(jù)結(jié)構(gòu)和多進程等高級內(nèi)容,而且同時闡述了程序設(shè)計思想。\r\n', 4); INSERT INTO `book` VALUES (25, 'Linux shell腳本編程入門', '金泰龍', '人民教育出版社', '2014-09-18', 89.0, 496, 'linux01.jpg', '* 本書涵蓋了Linux學(xué)習(xí)中必知的shell(Bourne shell、Bash shell)指令和Linux全局系統(tǒng)要素。\r\n* 本書包括了Linux服務(wù)器和嵌入式Linux中必須掌握的基礎(chǔ)知識。\r\n* 本書通過對Linux服務(wù)器運行的核心——shell腳本編程的講解和舉例,幫助讀者提高技術(shù)水平,成為善于思考的管理員、程序員。\r\n', 6); INSERT INTO `book` VALUES (26, 'Linux/Unix設(shè)計思想', 'Mike Gancarz', '中國人民大學(xué)出版社', '2012-03-30', 39.0, 192, 'linux02.jpg', '剖析Linux/Unix制勝之道\r\n全新闡釋開源哲學(xué)\r\nJon ”maddog” Hall作序推薦', 6); INSERT INTO `book` VALUES (27, 'Linux命令速查手冊', 'Scott Granneman?', '清華大學(xué)出版社', '2009-09-29', 29.0, 336, 'linux03.jpg', '要想真正精通Linux,并成為一名高手,必須掌握Linux命令。本書涵蓋了Linux 命令的基礎(chǔ)知識、文件管理命令、資料查詢命令、系統(tǒng)管理命令、網(wǎng)絡(luò)配置命令和網(wǎng)絡(luò)服務(wù)命令等內(nèi)容,并用翔實的例子演示了每個命令的使用方法。本書篇幅短小,內(nèi)容簡潔實用,易于查詢,書中提供的代碼和命令語法可以快速用于Linux操作系統(tǒng)和開發(fā)環(huán)境。\r\n', 6); INSERT INTO `book` VALUES (28, 'JavaScript修煉之道', 'Christophe Porteneuv', '北京大學(xué)出版社 ', '2011-11-07', 29.0, 132, 'js04.jpg', 'JavaScript已無處不在。在當(dāng)今紛繁復(fù)雜的網(wǎng)絡(luò)世界中,它是不可或缺的組成部分。然而,即便對有經(jīng)驗的開發(fā)人員而言,JavaScript的體系都像難以穿越的生態(tài)環(huán)境系統(tǒng)。為此,本書以有別于一般教程的任務(wù)驅(qū)動方式來組織,圍繞35個必會的關(guān)鍵JavaScript任務(wù)進行論述,并針對常見任務(wù)提出了一些新的開發(fā)方法,再加上本書獨特的左頁原理右頁代碼的編排方式,使你在閱讀過程中快速地獲得提升。\r\n\r\n', 5); INSERT INTO `book` VALUES (29, 'JavaScript程序設(shè)計', 'Ray Toal', '中國人民大學(xué)出版社', '2016-04-11', 89.0, 380, 'js02.jpg', 'JavaScript是Web開發(fā)和網(wǎng)頁設(shè)計的必備技術(shù)之一,也是一門優(yōu)秀的教學(xué)語言,非常適合初涉計算機科學(xué)領(lǐng)域的學(xué)生學(xué)習(xí)。本書是專門為計算機編程入門課程設(shè)計的,它以一種現(xiàn)代化的方式向?qū)W生們介紹了計算機科學(xué)與編程,并提供了真實案例研究和大量練習(xí)。', 5); INSERT INTO `book` VALUES (30, 'JavaScript設(shè)計模式與開發(fā)實踐', '曾探', '清華大學(xué)出版社', '2015-05-15', 59.0, 312, 'js03.jpg', '騰訊前端Alloy Team團隊出品,資深前端工程師曾探力作\r\n全面涵蓋專門針對JavaScript的16個設(shè)計模式\r\n深入剖析面向?qū)ο笤O(shè)計原則、面向?qū)ο缶幊碳记杉按a重構(gòu)\r\n', 5); INSERT INTO `book` VALUES (31, '同構(gòu)JavaScript應(yīng)用開發(fā)', 'Jason Strimpe', '清華大學(xué)出版社', '2017-10-19', 49.0, 159, 'js01.jpg', '本書的主要目的是為同構(gòu)JavaScript的實現(xiàn)提供基礎(chǔ)知識,并幫助讀者理解業(yè)界現(xiàn)有的同構(gòu)JavaScript解決方案,在實際判斷同構(gòu)JavaScript是否為可行的解決方案時能夠作出最明智的選擇,避免你“重復(fù)造輪子”。具體內(nèi)容:第一部分描繪不同種類的同構(gòu)JavaScript的輪廓,第二部分介紹關(guān)鍵概念,第三部分提供業(yè)界同行的解決方案案例。\r\n', 5); INSERT INTO `book` VALUES (32, '前方的路?[預(yù)售]', '阮一峰', '人民教育出版社', '2017-05-15', 49.0, 360, 'zhishu01.jpg', '深刻的好奇心,善于考據(jù)的思維方式,對一切美好事物及感情充滿向往……作者廣泛涉獵,善于思考,勤于總結(jié),并且樂于分享:將自己從一本書、一部電影或者一段經(jīng)歷中所得的感受和思考,都發(fā)表在了2003年開通的博客上。十余年累積的1500余篇博文,書寫了各種龐雜的知識,理性且不乏人文關(guān)懷。\r\n\r\n', 7); INSERT INTO `book` VALUES (33, '未來世界的幸存者?[預(yù)售]', '阮一峰?', '人民教育出版社', '2017-06-15', 39.0, 168, 'zhishu02.jpg', '機器人、自動化、人工智能正變得比人類更強大\r\n技術(shù)變革導(dǎo)致人類社會重構(gòu)\r\n在可預(yù)見的未來,技術(shù)終將淘汰人類\r\n世界正劇烈變化,我們該何去何從\r\n', 7); INSERT INTO `book` VALUES (34, '簡約至上:交互式設(shè)計四策略[預(yù)售]', '賈爾斯?科爾伯恩', '人民教育出版社', '2017-06-26', 59.0, 232, 'zhishu03.jpg', '追求簡單易用是人類的本性,簡單易用始終是贏得用戶的關(guān)鍵,并決定了產(chǎn)品壽命。本書作者賈爾斯?科爾伯恩依托20多年交互式設(shè)計的探索與實踐,提出了合理刪除、分層組織、適時隱藏和巧妙轉(zhuǎn)移這4個達成簡約至上的策略,講述了為什么應(yīng)該站在主流用戶一邊,以及如何從他們的真實需求和期望出發(fā),簡化設(shè)計,提升易用性,創(chuàng)造出卓爾不群、歷久彌新的用戶體驗。\r\n', 7);-- ---------------------------- -- Table structure for cart -- ---------------------------- DROP TABLE IF EXISTS `cart`; CREATE TABLE `cart` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`count` int(5) NOT NULL,`price` double(3, 1) NOT NULL,`date` date NOT NULL,`orderman` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 24 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of cart -- ---------------------------- INSERT INTO `cart` VALUES (24, 'Python數(shù)據(jù)科學(xué)手冊', 1, 99.9, '2021-12-02', '1'); INSERT INTO `cart` VALUES (26, 'Python數(shù)據(jù)科學(xué)手冊', 1, 99.9, '2021-12-02', '1'); INSERT INTO `cart` VALUES (27, '程序員的算法趣題', 1, 55.0, '2021-12-02', 'user');-- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`password` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES (1, 'admin', 'admin'); INSERT INTO `user` VALUES (2, '1', '1'); INSERT INTO `user` VALUES (3, 'user', 'user');SET FOREIGN_KEY_CHECKS = 1;二、系統(tǒng)展示
1.首頁展示
2.系統(tǒng)注冊
3.系統(tǒng)登錄
4.登錄首頁
5.書籍查看
6.書籍明細
7.購物車明細
三、部分代碼
LoginController
package com.bookstore.controller;import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;import com.bookstore.domain.User; import com.bookstore.service.LoginService;@Controller public class LoginController {//授權(quán)服務(wù)層@Autowiredprivate LoginService loginService;//跳轉(zhuǎn)到登錄頁面@RequestMapping("tologin")public ModelAndView tologin() {ModelAndView mv = new ModelAndView("login");return mv;}//登錄操作@RequestMapping(value = "login", method = RequestMethod.POST)public ModelAndView login(String username, String password, HttpSession session) {ModelAndView mv;User user = loginService.login(username, password);//執(zhí)行登錄操作,并將登錄對象返回if (user != null) {//判斷對象是否存在//不存在就跳往主頁面,并設(shè)置對象的會話mv = new ModelAndView("redirect:main");session.setAttribute("user", user);} else {//存在:就跳到登錄頁面重新登陸mv = new ModelAndView("redirect:tologin");}return mv;} }
MainController
package com.bookstore.controller;import java.util.List;import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;import com.bookstore.domain.Book;
import com.bookstore.domain.Cart;
import com.bookstore.service.BookService;
import com.bookstore.service.CartService;@Controller
public class MainController {//授權(quán)服務(wù)層@Autowiredprivate BookService bookService;@Autowiredprivate CartService cartService;//跳往主頁面@RequestMapping("main")public ModelAndView main() {List<Book> bookList = bookService.getAllNewBooks();//查詢最新的書籍(取前12本)ModelAndView mv = new ModelAndView("main");mv.addObject("bookList", bookList);//將數(shù)據(jù)傳遞到前臺頁面return mv;}//查詢得到所有的書籍@RequestMapping("allbook")public ModelAndView allbook() {List<Book> bookList = bookService.getAllBooks();//調(diào)用服務(wù)層方法得到所有書籍用List結(jié)果集存起來ModelAndView mv = new ModelAndView("main");mv.addObject("bookList", bookList);//將List集合返回給前端頁面,進行呈現(xiàn)return mv;}//退出登錄@RequestMapping("cancel")public ModelAndView cancel(HttpSession session) {session.removeAttribute("user");//銷毀用戶登錄的會話ModelAndView mv = new ModelAndView("redirect:main");//重定向到主頁面return mv;}//按類型查詢書籍(type傳遞過來的分類參數(shù))@RequestMapping("typebook")public ModelAndView typebook(int type) {List<Book> bookList = bookService.getBooksByBooktype(type);//調(diào)用服務(wù)層方法按分類參數(shù)查詢不同種類的書籍(例如Java,type=1)ModelAndView mv = new ModelAndView("main");mv.addObject("bookList", bookList);//將數(shù)據(jù)傳遞到前臺頁面return mv;}//跳轉(zhuǎn)到書籍頁面,根據(jù)書籍的id來判斷是選中的那本書進行跳轉(zhuǎn),并查詢對應(yīng)的書籍?dāng)?shù)據(jù)進行顯示數(shù)據(jù)@RequestMapping("tobook")public ModelAndView tobook(int id) {Book book = bookService.getBookById(id);//調(diào)用服務(wù)層方法,通過書籍id查詢出選中書的屬性ModelAndView mv = new ModelAndView("book");mv.addObject("book", book);//將數(shù)據(jù)傳遞到前臺頁面return mv;}//選好書籍?dāng)?shù)量,添加到購物車@RequestMapping(value = "incart", method = RequestMethod.POST)public ModelAndView incart(Cart cart, HttpSession session) {ModelAndView mv = null;if (session.getAttribute("user") == null) {//通過判斷會話中是否有用戶來進行不同的操作//用戶不是登錄狀態(tài)跳轉(zhuǎn)到登錄界面,進行登錄操作mv = new ModelAndView("redirect:tologin");} else {//用戶是登錄狀態(tài),直接調(diào)用服務(wù)層方法把購物記錄添加到數(shù)據(jù)庫int n = cartService.incart(cart, session);//并通過返回值n來判斷添加時候成功,成功就跳轉(zhuǎn)到購物車頁面if (n != 0) {mv = new ModelAndView("redirect:tocart");//從定向跳轉(zhuǎn)到購物車}}return mv;}//跳轉(zhuǎn)到購物車頁面@RequestMapping("tocart")public ModelAndView tocart(HttpSession session) {ModelAndView mv;if (session.getAttribute("user") != null) {//判斷用戶是否登錄mv = new ModelAndView("cart");//登錄狀態(tài)下,跳轉(zhuǎn)到購物車頁面List<Cart> cartList = cartService.getAllOrders(session);//查詢出來的購物車記錄保存到List集合里面mv.addObject("cartList", cartList);//將數(shù)據(jù)傳遞到前臺頁面} else {mv = new ModelAndView("redirect:tologin");//不是登錄狀態(tài)下,跳轉(zhuǎn)到登錄頁面}return mv;}//通過購物記錄id刪除這條記錄@RequestMapping(value = "cancelcart", method = RequestMethod.GET)public ModelAndView cancelcart(int id) {//得到選中記錄的idModelAndView mv = null;int n = cartService.deleteCartById(id);//調(diào)用服務(wù)層進行刪除操作,并返回nif (n != 0) {//n不為0,說明刪除成功mv = new ModelAndView("redirect:tocart");//重定向到購物車頁面,進行刷新顯示}return mv;}
}
RegisterController
package com.bookstore.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;import com.bookstore.domain.User;
import com.bookstore.service.RegisterService;@Controller
public class RegisterController {//授權(quán)服務(wù)層@Autowiredprivate RegisterService registerService;//跳轉(zhuǎn)到注冊頁面@RequestMapping("toregister")public ModelAndView toregister() {ModelAndView mv = new ModelAndView("register");//跳轉(zhuǎn)到注冊頁面,沒有數(shù)據(jù)讀取,就單純的跳轉(zhuǎn)return mv;}//進行注冊操作@RequestMapping(value = "register", method = RequestMethod.POST)public ModelAndView register(User user) {//獲取頁面post提交的參數(shù),如果頁面提交的參數(shù)和實體類User定義的參數(shù)一樣,可以直接寫User對象接受ModelAndView mv;int m = registerService.getUserByNameAndPwd(user);//通過user對象的用戶名和密碼,調(diào)用服務(wù)層方法去查詢這個用戶時候已經(jīng)存在if (m == 0) {//返回的m等于0,表示用戶不存在int n = registerService.register(user);//調(diào)用服務(wù)層方法,進行添加用戶到數(shù)據(jù)庫if (n != 0) {//n不等0,表示添加成功,成功了就行跳轉(zhuǎn)到登錄頁面mv = new ModelAndView("redirect:tologin");} else {//n等于0,表示添加失敗,重新跳轉(zhuǎn)到注冊頁面,進行重新注冊mv = new ModelAndView("toregister");}} else {//m不等于0,表示用戶存在,直接重定向到登錄頁面,進行登錄操作mv = new ModelAndView("redirect:tologin");}return mv;}
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com</groupId><artifactId>bookstore</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>bookstore Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><java-version>1.8</java-version><org.springframework-version>3.1.1.RELEASE</org.springframework-version><org.aspectj-version>1.6.10</org.aspectj-version><org.slf4j-version>1.6.6</org.slf4j-version></properties><dependencies><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework-version}</version><exclusions><!-- Exclude Commons Logging in favor of SLF4j --><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${org.springframework-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${org.springframework-version}</version></dependency><!-- Spring AOP dependency --><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>2.2</version></dependency><!-- AspectJ --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>${org.aspectj-version}</version></dependency><!-- Logging --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${org.slf4j-version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${org.slf4j-version}</version><scope>runtime</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${org.slf4j-version}</version><scope>runtime</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.15</version><exclusions><exclusion><groupId>javax.mail</groupId><artifactId>mail</artifactId></exclusion><exclusion><groupId>javax.jms</groupId><artifactId>jms</artifactId></exclusion><exclusion><groupId>com.sun.jdmk</groupId><artifactId>jmxtools</artifactId></exclusion><exclusion><groupId>com.sun.jmx</groupId><artifactId>jmxri</artifactId></exclusion></exclusions><scope>runtime</scope></dependency><!-- @Inject --><dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version></dependency><!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- mybatis and Mysql --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.1</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version></dependency><!-- druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.7.2</version></dependency><!-- Test --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.9.9</version></dependency></dependencies><build><finalName>BookStore</finalName><!-- 如果不添加此節(jié)點mybatis的mapper.xml文件都會被漏掉。 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build></project>四、其他
1.更多系統(tǒng)
Java+JSP系統(tǒng)系列實現(xiàn)
Java+JSP實現(xiàn)學(xué)生圖書管理系統(tǒng)
Java+JSP實現(xiàn)學(xué)生信息管理系統(tǒng)
Java+JSP實現(xiàn)用戶信息管理系統(tǒng)
Java+Servlet系統(tǒng)系列實現(xiàn)
Java+Servlet+JSP實現(xiàn)航空訂票系統(tǒng)
Java+Servlet+JSP實現(xiàn)新聞發(fā)布系統(tǒng)
Java+Servlet+JSP學(xué)生宿舍管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)圖書管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)停車場管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)房屋租賃管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)學(xué)生信息管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)學(xué)生選課管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)寵物診所管理系統(tǒng)
Java+Servlet+JSP實現(xiàn)學(xué)生成績管理系統(tǒng)-1
Java+Servlet+JSP實現(xiàn)學(xué)生成績管理系統(tǒng)-2
Java+SSM系統(tǒng)系列實現(xiàn)
J???ava+SSM+JSP實現(xiàn)網(wǎng)上考試系統(tǒng)
Java+SSM+JSP實現(xiàn)寵物商城系統(tǒng)
Java+SSM+Layui實現(xiàn)學(xué)生成績管理系統(tǒng)
Java+SSM+Bootstrap實現(xiàn)學(xué)生信息管理系統(tǒng)
Java+SSH系統(tǒng)系列實現(xiàn)
Java+SSH+JSP實現(xiàn)在線考試系統(tǒng)
Java+SSH+JSP實現(xiàn)醫(yī)院在線掛號系統(tǒng)
Java+Springboot系統(tǒng)系列實現(xiàn)
Java+Springboot+H-ui+Maven實現(xiàn)營銷管理系統(tǒng)
Java+Springboot+Bootstrap+Maven實現(xiàn)網(wǎng)上商城系統(tǒng)
Java+Springboot+Bootstrap+Maven實現(xiàn)景區(qū)旅游管理系統(tǒng)
1.更多JavaWeb系統(tǒng)請關(guān)注專欄。
https://blog.csdn.net/helongqiang/category_10020130.htmlhttps://blog.csdn.net/helongqiang/category_10020130.html
2.更多JavaSwing系統(tǒng)請關(guān)注專欄。
https://blog.csdn.net/helongqiang/category_6229101.htmlhttps://blog.csdn.net/helongqiang/category_6229101.html
2.源碼下載
Java+SSM+Maven+Mysql+Bootstrap實現(xiàn)網(wǎng)上書城系統(tǒng)
3.備注
如有侵權(quán)請聯(lián)系我刪除。
4.支持博主
如果您覺得此文對您有幫助,請點贊加關(guān)注加收藏。祝您生活愉快!想要獲取其他資源可關(guān)注左側(cè)微信公眾號獲取!
總結(jié)
以上是生活随笔為你收集整理的IDEA+Java+SSM+Mysql+Bootstrap+Maven实现网上书城系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公开数据集
- 下一篇: ANSI SQL标准和准则