• Java项目:SSM图书馆图书管理系统


    作者主页:源码空间站2022

     简介: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.数据库:MySql 5.7版本;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:HTML+CSS+JavaScript+jsp

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入localhost:8080/ 登录

    运行截图

    代码相关

    登录管理控制器

    1. @RequestMapping("/login")
    2. @Controller
    3. public class LoginController {
    4. @Autowired
    5. private LoginService loginService;
    6. //用户登录
    7. @PostMapping
    8. @ResponseBody
    9. public String login(@RequestBody LoginVo loginVo, HttpServletResponse response,
    10. HttpServletRequest request){
    11. String url = loginService.login(loginVo,response,request);
    12. return url;
    13. }
    14. //读者自动登录
    15. @GetMapping("/autoLogin")
    16. public String autoLoginReader(HttpServletResponse response,HttpServletRequest request){
    17. Boolean flag = loginService.autoLoginReader(response, request);
    18. String url = "";
    19. if(flag){ //登录成功
    20. url = "/pages/reader/bookDatalist.jsp";
    21. }else{ //登陆失败
    22. url = "/pages/login.jsp";
    23. }
    24. return "redirect:"+ url;
    25. }
    26. }

    注册管理控制器

    1. @RequestMapping("register")
    2. @RestController
    3. public class RegisterController {
    4. @Autowired
    5. private ReaderService readerService;
    6. //用户名是否存在
    7. @PostMapping("/account/{accountName}")
    8. @ResponseBody
    9. public ResponseEntity accountName(@PathVariable("accountName") String accountName){
    10. readerService.accountNameExist(accountName);
    11. return ResponseEntity.ok().build();
    12. }
    13. //用户注册
    14. @PostMapping
    15. @ResponseBody
    16. public ResponseEntity registerReader(@RequestBody Reader reader){
    17. reader.builderReader();
    18. readerService.saveReader(reader);
    19. return ResponseEntity.ok().build();
    20. }
    21. //发送邮箱验证码
    22. @PostMapping("/verifyMailCode/{account}/{email}")
    23. @ResponseBody
    24. public ResponseEntity verifyMailCode(@PathVariable("account") String account,
    25. @PathVariable("email") String email){
    26. readerService.verifyMailCode(account,email);
    27. return ResponseEntity.ok().build();
    28. }
    29. }

     图书管理控制器

    1. @RequestMapping("/manager/books")
    2. @RestController()
    3. public class MBookController {
    4. @Autowired
    5. private BookService bookService;
    6. //分页获取图书信息 并可查找
    7. @GetMapping(value = "/{page}/{size}")
    8. public ResponseEntity> booksList(@PathVariable("page") Integer page,
    9. @PathVariable("size") Integer size,
    10. Books book){
    11. return ResponseEntity.ok(bookService.getBookList(page,size,book));
    12. }
    13. //添加图书
    14. @PostMapping
    15. public ResponseEntity addBook(@RequestBody Books books){
    16. bookService.addBook(books);
    17. return ResponseEntity.status(HttpStatus.CREATED).build();
    18. }
    19. //修改图书
    20. @PutMapping
    21. public ResponseEntity modifyBook(@RequestBody Books books){
    22. bookService.modifyBook(books);
    23. return ResponseEntity.ok().build();
    24. }
    25. //修改图书的状态
    26. @PutMapping("/{bId}/{status}")
    27. public ResponseEntity modifyBookStatus(@PathVariable("bId") Integer bId,
    28. @PathVariable("status") Boolean status){
    29. bookService.modifyBookStatus(bId,status);
    30. return ResponseEntity.ok().build();
    31. }
    32. //修改图书的总数量
    33. @PutMapping("/total/{bId}/{total}")
    34. public ResponseEntity modifyBookTotal(@PathVariable("bId") Integer bId,
    35. @PathVariable("total") Integer total){
    36. bookService.modifyBookTotal(bId,total);
    37. return ResponseEntity.ok().build();
    38. }
    39. // //删除图书 多个
    40. @DeleteMapping
    41. public ResponseEntity deleteBookBybIds(@RequestBody List ids){
    42. bookService.deleteBookBybIds(ids);
    43. return ResponseEntity.ok().build();
    44. }
    45. //删除图书 一个
    46. @DeleteMapping("/{bId}")
    47. public ResponseEntity deleteBookBybId(@PathVariable("bId") Integer bId){
    48. bookService.deleteBookBybIds(Arrays.asList(bId));
    49. return ResponseEntity.ok().build();
    50. }
    51. }

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

     

  • 相关阅读:
    (Note)同比和环比
    How to install nodejs.16 to Linux mint 21.0
    Unreal基础概念
    jwt判断解析失败还是令牌过期
    数据库连接池之c3p0-0.9.1.2,16年的古董,发生连接泄露怎么查(一)
    IEC101、IEC103、IEC104的区别与应用场景
    服务拆分(案例Demo)
    在gitee上建自己的博客
    el-select 搜索无选项时 请求接口添加输入的值
    最长公共字符串后缀
  • 原文地址:https://blog.csdn.net/m0_74967853/article/details/128193626