🚀个人主页:
⏰ 最近更新: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】项目。