企业网站定制开发【JAVA项目实战】【图书管理系统】借阅管理功能【Servlet】+【Ajax】+【MySql】+【Session】

🚀个人主页:

⏰ 最近更新:2022年10月23日

⛽ 学习系列:

🔥 系列:

🍭 Java算法21天系列:

⛳ Java企业网站定制开发基础学习系列:

🏆 企业网站定制开发通信仿真学习系列:

🍄 个人简介:企业网站定制开发通信工程本硕🌈、Java程序员🚴。目前只会CURD😂

💌 点赞 👍 收藏 💗留言 💬 企业网站定制开发都是我最大的动力💯

文章目录


前言

这里是【JAVASE】企业网站定制开发项目实战的第八节课,企业网站定制开发前面完成了学生管理、书籍管理、院系管理、登录登出等功能,今天做的是最后的一个模块借阅管理功能,使用【Servlet】【AJax】【MySql】【Session】来实现借阅卡管理和借阅图书的功能。基本功能模块就介绍到这里,整体项目的源码可以私信找我获取。



一、需求分析

与前面的前面的其他模块的功能不太一样,这里需要制作独一无二的借阅卡,与每个学生信息对应,然后通过借阅卡去查询、借阅、归还图书。不仅需要进行联合查询,而且对数据的传递要求较高,需要对【Ajax】技术掌握较好。

二、功能实现

1.借书卡管理

管理员通过给不同的学生生成对应放入借书卡,同时学生可以看到自己的借书卡和对应的状态,凭借自己的借书卡去借阅图书。

public class ReaderCard implements Serializable {    private static final long serialVersionUID = 598227642102145185L;    /**    * 借书卡id    */    private Integer id;    /**    * 学生编号    */    private String stuId;    /**    * 学生姓名-冗余字段    */    private String stuName;    /**    * 借书卡密码    */    private String password;    /**    * 借书卡状态 0 未使用  1 已使用    */    private Integer state;    /**    * 是否被删除 0 删除 1未删除    */    private Integer isDeleted;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getStuId() {        return stuId;    }    public void setStuId(String stuId) {        this.stuId = stuId;    }    public String getStuName() {        return stuName;    }    public void setStuName(String stuName) {        this.stuName = stuName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Integer getState() {        return state;    }    public void setState(Integer state) {        this.state = state;    }    public Integer getIsDeleted() {        return isDeleted;    }    public void setIsDeleted(Integer isDeleted) {        this.isDeleted = isDeleted;    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78

2.生成借书卡

后端开发一般从dao层开始写,然后在业务逻辑成实现业务逻辑,接着使用控制器对页面进行处理和跳转,这里使用UUID生成唯一与学生对应的密文形式的借书卡。

private void save(HttpServletRequest req, HttpServletResponse resp) throws IOException {        try {            ReaderCard readerCard = RequestParameterUntil.getRequestParameterForReflect(req, ReaderCard.class);            Student student = studentService.queryStudentById(Integer.parseInt(readerCard.getStuId()));            readerCard.setStuName(student.getStuName());            //生成卡密            String password = UUID.randomUUID().toString();            readerCard.setPassword(password)            ;            readerCardService.save(readerCard);            resp.sendRedirect("/readerCardServlet?sqltype=query");        } catch (InstantiationException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3.我的借书卡

管理员在管理页面可以看到所有的借书卡信息,而学生在管理页面只能看到自己的借书卡信息,使用学生的唯一字段与信息卡做绑定,就可以使每个学生都有自己唯一的借书卡。

 private void querylist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        List<ReaderCard>list=null;        User user = (User) req.getSession().getAttribute(Constant.SESSION_LONGIN);        if (!"admin".equals(user.getUserName())){            //如果不是管理员,就只查询当前自己的卡信息            String phone=user.getPhoneNum();            Student stu=studentService.queryByPhone(phone);            //判断是否已有借书卡            if (stu!=null){                list=readerCardService.queryByStuId(stu.getId());            }        }else{            //查询所有的借书卡信息            list=readerCardService.list(null);        }        //进行参数绑定        req.setAttribute("list",list);        //进行页面跳转        req.getRequestDispatcher("/card/card.jsp").forward(req, resp);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4.借阅与归还

使用借书卡对不同的书进行借阅和归还操作,不仅要记录借阅记录,这里需要同时更新书籍信息和借书卡信息,

    @Override    public Integer borrowLendList(LendList lendList) {        //更新借书卡的状态        ReaderCard readerCard=readerCardService.queryById(Integer.parseInt(lendList.getCardId()));        readerCard.setState(1);        readerCardService.update(readerCard);        //更新书籍的状态        Book book=bookService.queryBookById(lendList.getBookId());        book.setState(BookFlag.BORROW.code);        bookService.updateBook(book);        return listDao.borrowLendList(lendList);    }    @Override    public Integer backLendList(LendList lendList) {        //更新借书卡的状态        ReaderCard readerCard=readerCardService.queryById(Integer.parseInt(lendList.getCardId()));        readerCard.setState(0);        readerCardService.update(readerCard);        //更新书籍的状态        Book book=bookService.queryBookById(lendList.getBookId());        book.setState(BookFlag.FREE.code);        bookService.updateBook(book);        return listDao.backLendList(lendList);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

三、功能测试

启动服务器,让项目在服务器中运行,在借书卡管理页面使用【百里守约】学生的借阅卡,借阅【Java程序设计】书籍。

查看书籍的借阅状态,发现借阅的书籍状态为【借阅中】

归还操作与借阅的操作类似,可以完成书籍的归还,此时借阅卡也更新状态。

总结

以上就是今天要讲的内容,使用【Servlet】【AJax】【MySql】【Session】来实现借阅管理功能,整个项目到此就介绍完毕,对每个模块进行了详细分析与实现,对自己的基本知识进一步巩固,后面会继续写【SSM】项目。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发