• Java项目:ssm图书商城系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    该项目分为前后台,前台主要功能包括:
    普通用户的注册、登录;
    轮播图展示、图书列表、图书详情、加入购物车、我的订单等功能;

    后台主要功能包括:
    图书管理:图书列表、图书类型、供应商列表-包括图书、类型、供应商等的新增、修改、删除;
    订单管理:订单列表-订单发货、删除;

    用户管理:用户列表-用户新增、修改、删除;

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
    5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

    6.数据库:MySql 8.0版本;

    技术栈

    1. 后端:Spring SpringMVC MyBatis

    2. 前端:JSP+bootstrap+jQuery+layui

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat;

    3. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
    4. 前台:http://localhost:8080/book/qiantai

    后台:http://localhost:8080/admin

    运行截图

     

     

     

     

     

     

     

     

    相关代码 

    BookController

    1. package com.hk.controller;
    2. import com.github.pagehelper.PageInfo;
    3. import com.hk.model.BookType;
    4. import com.hk.model.Books;
    5. import com.hk.model.Supplier;
    6. import com.hk.service.IBookService;
    7. import com.hk.service.IBookTypeService;
    8. import com.hk.service.ISupplierService;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.stereotype.Controller;
    11. import org.springframework.ui.Model;
    12. import org.springframework.web.bind.annotation.*;
    13. import org.springframework.web.multipart.MultipartFile;
    14. import javax.servlet.http.HttpServletRequest;
    15. import java.util.List;
    16. /**
    17. * @author zhe
    18. * @Create 2021/5/27/23:11
    19. * @State 图书管理控制层
    20. */
    21. @Controller
    22. @RequestMapping("/book")
    23. @SessionAttributes({"bookTypeList"})
    24. public class BookController {
    25. @Autowired
    26. private IBookTypeService iBookTypeService;
    27. @Autowired
    28. private IBookService iBookService;
    29. @Autowired
    30. private ISupplierService iSupplierService;
    31. /**
    32. * 图书列表
    33. * @param model
    34. * @return
    35. */
    36. @GetMapping("/home")
    37. public String toAdminHome(
    38. @RequestParam(defaultValue = "1") Integer num,
    39. @RequestParam(defaultValue = "5")Integer size,
    40. Model model
    41. ) {
    42. // 获取导航栏
    43. List bookTypeList = iBookTypeService.findAllBookType(1,100 );
    44. model.addAttribute("bookTypeList", bookTypeList);
    45. // 获取供应商
    46. List supplierList = iSupplierService.findAllSupplier(1,100);
    47. model.addAttribute("supplierList", supplierList);
    48. // 获取图书
    49. List booksList = iBookService.findAllBook(num,size);
    50. PageInfo booksPageInfo = new PageInfo<>(booksList);
    51. model.addAttribute("booksPageInfo", booksPageInfo);
    52. return "/backstage/home";
    53. }
    54. /**
    55. * 图书列表
    56. * @param model
    57. * @return
    58. */
    59. @GetMapping("/home1")
    60. public @ResponseBody PageInfo toAdminHome1(
    61. @RequestParam(defaultValue = "1") Integer num,
    62. @RequestParam(defaultValue = "5")Integer size,
    63. Model model
    64. ) {
    65. // 获取导航栏
    66. List bookTypeList = iBookTypeService.findAllBookType(1,100);
    67. model.addAttribute("bookTypeList", bookTypeList);
    68. // 获取供应商
    69. List supplierList = iSupplierService.findAllSupplier(1,100 );
    70. model.addAttribute("supplierList", supplierList);
    71. // 获取图书
    72. List booksList = iBookService.findAllBook(num,size);
    73. PageInfo booksPageInfo = new PageInfo<>(booksList);
    74. return booksPageInfo;
    75. }
    76. /**
    77. * 上传图书图片
    78. * @param request
    79. * @param file
    80. * @return
    81. */
    82. @PostMapping("/uploadimg")
    83. public @ResponseBody int uploadimg(HttpServletRequest request, MultipartFile file) {
    84. int i = iBookService.uploadImage(request,file);
    85. return i;
    86. }
    87. /**
    88. * 上传详情图片
    89. * @param request
    90. * @param file
    91. * @return
    92. */
    93. @PostMapping("/uploaddetail")
    94. public @ResponseBody int uploaddetail(HttpServletRequest request, MultipartFile file) {
    95. int i = iBookService.uploaddetail(request,file);
    96. return i;
    97. }
    98. /**
    99. *新增图书
    100. * @return
    101. */
    102. @PostMapping("/saveBook")
    103. public String saveBook(Books books) {
    104. // System.out.println("Books:="+books);
    105. iBookService.saveBook(books);
    106. return "redirect:/book/home";
    107. }
    108. /**
    109. * 前台首页
    110. *
    111. * @return
    112. */
    113. @GetMapping("/qiantai")
    114. public String toHome(
    115. @RequestParam(defaultValue = "1") Integer num,
    116. @RequestParam(defaultValue = "10")Integer size,
    117. Model model) {
    118. // 获取导航栏
    119. List bookTypeList = iBookTypeService.findAllBookType(1,100);
    120. model.addAttribute("bookTypeList", bookTypeList);
    121. // 获取全部图书
    122. List booksList = iBookService.findAllBook(num,size );
    123. PageInfo booksPageInfo = new PageInfo<>(booksList);
    124. model.addAttribute("booksPageInfo", booksPageInfo);
    125. return "/frontdesk/home";
    126. }
    127. /**
    128. * 通过Id查询图书详情
    129. * @param id
    130. * @param model
    131. * @return
    132. */
    133. @GetMapping("/findById/{id}")
    134. public String findById(@PathVariable Integer id,Model model) {
    135. Books books = iBookService.findById(id);
    136. model.addAttribute("books",books);
    137. return "/frontdesk/book_detail";
    138. }
    139. /**
    140. * 管理员通过Id查询图书详情
    141. * @param id
    142. * @param model
    143. * @return
    144. */
    145. @GetMapping("/adminfindById/{id}")
    146. public String adminfindById(@PathVariable Integer id,Model model) {
    147. // 获取供应商
    148. List supplierList = iSupplierService.findAllSupplier(1,100 );
    149. model.addAttribute("supplierList", supplierList);
    150. // 获取图书详情
    151. Books books = iBookService.findById(id);
    152. model.addAttribute("books",books);
    153. return "/backstage/update_book";
    154. }
    155. /**
    156. * 修改图书信息
    157. * @param books
    158. * @return
    159. */
    160. @PostMapping("/updateBook")
    161. public String updateBook(Books books) {
    162. // System.out.println("返回的图书:"+books);
    163. iBookService.updateBook(books);
    164. return "redirect:/book/home";
    165. }
    166. /**
    167. * 通过图书类型Id查询图书
    168. * @param tid
    169. * @param model
    170. * @return
    171. */
    172. @GetMapping("/findByTid/{tid}")
    173. public String findByTid(@PathVariable Integer tid,@RequestParam(defaultValue = "1") Integer num,@RequestParam(defaultValue = "10")Integer size,Model model) {
    174. List booksList = iBookService.findByTid(tid,num,size);
    175. PageInfo booksPageInfo = new PageInfo<>(booksList);
    176. model.addAttribute("booksPageInfo", booksPageInfo);
    177. model.addAttribute("tid",tid);
    178. return "/frontdesk/home";
    179. }
    180. @PostMapping("/deleteBook/{id}")
    181. public @ResponseBody int deleteBook(@PathVariable("id") Integer id) {
    182. int i = iBookService.deleteBook(id);
    183. return i;
    184. }
    185. }

    BookTypeController

    1. package com.hk.controller;
    2. import com.github.pagehelper.PageInfo;
    3. import com.hk.model.BookType;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.ui.Model;
    7. import org.springframework.web.bind.annotation.*;
    8. import com.hk.service.IBookTypeService;
    9. import java.util.List;
    10. /**
    11. * @author zhe
    12. * @Create 2021/5/27/23:26
    13. * @State 图书类型(导航)
    14. */
    15. @Controller
    16. @RequestMapping("/bookType")
    17. public class BookTypeController {
    18. @Autowired
    19. private IBookTypeService iBookTypeService;
    20. /**
    21. * 查询所有图书类型
    22. */
    23. @GetMapping("/findAllBookType")
    24. public String findAllBookType(
    25. @RequestParam(defaultValue = "1") Integer num,
    26. @RequestParam(defaultValue = "5")Integer size,
    27. Model model
    28. ) {
    29. List bookTypeList = iBookTypeService.findAllBookType(num,size);
    30. PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);
    31. model.addAttribute("bookTypePageInfo",bookTypePageInfo);
    32. return "/backstage/book_type";
    33. }
    34. /**
    35. * 返回JSON
    36. * 查询所有图书类型
    37. */
    38. @GetMapping("/findAllBookType1")
    39. public @ResponseBody PageInfo findAllBookType1(
    40. @RequestParam(defaultValue = "1") Integer num,
    41. @RequestParam(defaultValue = "5")Integer size
    42. ) {
    43. List bookTypeList = iBookTypeService.findAllBookType(num,size);
    44. PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);
    45. return bookTypePageInfo;
    46. }
    47. /**
    48. * 新增图书类型
    49. * @param bookType
    50. * @return
    51. */
    52. @PostMapping("/saveBookType")
    53. public String saveBookType(BookType bookType) {
    54. iBookTypeService.saveBookType(bookType);
    55. return "redirect:/bookType/findAllBookType";
    56. }
    57. /**
    58. * 查询单独图书类型
    59. * @param id
    60. * @return
    61. */
    62. @PostMapping("/findById/{id}")
    63. public @ResponseBody BookType findById(@PathVariable Integer id) {
    64. BookType bookType = iBookTypeService.findById(id);
    65. return bookType;
    66. }
    67. /**
    68. * 修改图书类型
    69. * @param bookType
    70. * @return
    71. */
    72. @PostMapping("/updateBookType")
    73. public @ResponseBody int updateBookType(BookType bookType) {
    74. // System.out.println("bookType:"+bookType);
    75. int i = iBookTypeService.updateBookType(bookType);
    76. return i;
    77. }
    78. /**
    79. * 根据Id删除
    80. * @param id
    81. * @return
    82. */
    83. @PostMapping("/deleteBookType/{id}")
    84. public @ResponseBody int deleteBookType (@PathVariable Integer id) {
    85. int i = iBookTypeService.deleteBookType(id);
    86. return i;
    87. }
    88. }

    MainController

    1. package com.hk.controller;
    2. import org.springframework.stereotype.Controller;
    3. import org.springframework.web.bind.annotation.RequestMapping;
    4. /**
    5. * @author zhe
    6. * @Create 2021/5/27/23:45
    7. * @State 页面入口
    8. */
    9. @Controller
    10. public class MainController {
    11. @RequestMapping("/admin")
    12. public String admin() {
    13. return "redirect:/users/adminLogin";
    14. }
    15. @RequestMapping("/")
    16. public String qiantai() {
    17. return "redirect:/book/qiantai";
    18. }
    19. }

    OrderFormController

    1. package com.hk.controller;
    2. import com.github.pagehelper.PageInfo;
    3. import com.hk.model.OrderForm;
    4. import com.hk.service.IOrderFormService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.ui.Model;
    8. import org.springframework.web.bind.annotation.*;
    9. import java.util.List;
    10. /**
    11. * @author zhe
    12. * @Create 2021/5/29/19:13
    13. * @State 订单管理
    14. */
    15. @Controller
    16. @RequestMapping("/orderForm")
    17. public class OrderFormController {
    18. @Autowired
    19. private IOrderFormService iOrderFormService;
    20. /**
    21. * 获取所有用户订单
    22. * @param model
    23. * @return
    24. */
    25. @GetMapping("/findAllOrderForm")
    26. public String findAllOrderForm(
    27. @RequestParam(defaultValue = "1") Integer num,
    28. @RequestParam(defaultValue = "5") Integer size,
    29. Model model) {
    30. List orderFormList = iOrderFormService.findAllOrderForm(num,size);
    31. PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);
    32. model.addAttribute("orderFormPageInfo",orderFormPageInfo);
    33. return "/backstage/order_form";
    34. }
    35. /**
    36. * 获取所有用户订单返回JSON数据
    37. * @return
    38. */
    39. @GetMapping("/findAllOrderForm1")
    40. public @ResponseBody PageInfo findAllOrderForm1(
    41. @RequestParam(defaultValue = "1") Integer num,
    42. @RequestParam(defaultValue = "5") Integer size
    43. ) {
    44. List orderFormList = iOrderFormService.findAllOrderForm(num,size);
    45. PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);
    46. return orderFormPageInfo;
    47. }
    48. /**
    49. * 新增订单
    50. * 1、将商品销售增加
    51. * 2、剩余量减少
    52. * 3、产生订单
    53. * @param orderForm
    54. * @return
    55. */
    56. @PostMapping("/saveOrderForm")
    57. public @ResponseBody int saveOrderForm(OrderForm orderForm) {
    58. // System.out.println("OrderForm:"+orderForm);
    59. int i = iOrderFormService.saveOrderForm(orderForm);
    60. return i;
    61. }
    62. /**
    63. * 搜索指定用户的订单列表
    64. * @param uid
    65. * @param num
    66. * @param size
    67. * @param model
    68. * @return
    69. */
    70. @GetMapping("/findByUid/{uid}")
    71. public String findByUid(
    72. @PathVariable Integer uid,
    73. @RequestParam(defaultValue = "1") Integer num,
    74. @RequestParam(defaultValue = "5") Integer size,
    75. Model model) {
    76. List orderFormList = iOrderFormService.findByUid(uid,num,size);
    77. PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);
    78. model.addAttribute("orderFormPageInfo",orderFormPageInfo);
    79. return "/frontdesk/order_form";
    80. }
    81. /**
    82. * 是否发货
    83. * @param orderForm
    84. * @return
    85. */
    86. @PostMapping("/updateOrderForm")
    87. public @ResponseBody int updateOrderForm(OrderForm orderForm) {
    88. int i = iOrderFormService.updateOrderForm(orderForm);
    89. return i;
    90. }
    91. /**
    92. * 移除该用户的某一订单
    93. * @param id
    94. * @return
    95. */
    96. @PostMapping("/deleteShopping/{uid}/{id}")
    97. public @ResponseBody int findByUid(@PathVariable Integer uid,@PathVariable Integer id) {
    98. int i = iOrderFormService.deleteOrderForm(uid,id);
    99. // System.out.println("返回的i="+i);
    100. return i;
    101. }
    102. /**
    103. * 根据主键Id删除某一订单
    104. * @return
    105. */
    106. @PostMapping("/deleteDeliver/{id}")
    107. public @ResponseBody int deleteDeliver(@PathVariable Integer id) {
    108. int i = iOrderFormService.deleteDeliver(id);
    109. return i;
    110. }
    111. }

    如果也想学习本系统,下面领取。关注并回复:064ssm 

  • 相关阅读:
    【附源码】Python计算机毕业设计社区团购系统
    关于C/C++中const关键字作用的一些想法
    做产品经理需要很高的学历吗?真相来咯!
    Go 学习之 io.Reader 从源码了解如何编写
    rust内存优化
    Spring常用注解。
    GBASE 8s基本命令:onstat -k讲解
    Spring(Ioc)
    Rust Yew应用开发的事件初探
    kafka操作的一些坑
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126717089