图书管理系统 毕业设计( 二 )


2环境搭建与需求分析 2.1 开发环境介绍
Java版本:Jdk1.8
前端:html,js,,
后端:java,,,,
数据库:mysql
2.2 相关技术背景 2.2.1 框架
框架是一个开放源代码的J2EE应用程序框架,由[Rod ]( /)发起,是针对bean的生命周期进行管理的轻量级容器( ) 。解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能 。可以单独应用于构筑应用程序,也可以和、、等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合 。因此,不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中 。框架主要由七部分组成,分别是Core、AOP、ORM、DAO、 、Web和Web MVC 。
2.2.2 MySQL
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统 。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David和Monty于 1995 年建立的 。
2.2.3
是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 。消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索 。使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(PlainJava,普通的 Java对象)映射成数据库中的记录 。

图书管理系统 毕业设计

文章插图
2.3 业务分析 2.3.1 数据库设计
如下图 2-1所示:
图2-1 数据库结构
表2-1 数据库结构
2.3.2实体设计
书本实体
图2-2 书本实体
用户实体
图2-3 用户实体
参数实体
图2-4 参数实体
借阅实体
图2-5 借阅实体
2.3.3 系统业务流程图
图2-6 系统业务流程
3 代码设计与功能实现 3.1 MVC
本系统的设计的最大的特色是采用了MVC分层的设计思想,系统界面采用 Web 页面作为表现层和数据粘合层,为了进行一些常用的逻辑处理的需要还创建了业务逻辑 层,为了为逻辑处理提供数据有创建了数据层,同时为了数据访问创建了数据模型层 。
图3-1 MVC模型
3.2 登录模块
如果使用系统就必须先登录到系统,用户使用登录模块登录系统界面效果如图3-2
图3-2 登录界面
单击“提交”按钮的处理代码如下:
@RequestMapping("/login")public String login(User user, RedirectAttributes attributes,Model model, HttpSession session){String username = user.getUsername();String password = Md5.getMD5String(user.getPassword());User user1 = userMapper.findUserByUsername(username);System.out.println(user1.toString());if (user1!=null){if (user1.getPassword().equals(password)){session.setAttribute("username",username);session.setAttribute("isadmin",user1.getIsadmin());session.setAttribute("id",user1.getId());return "redirect:index";}else{model.addAttribute("msg2","密码输入错误");return "login";}}else{model.addAttribute("msg1","用户名不存在");return "login";}}
(1)这行代码获取用户是否为管理信息 .(“”,user1.());
(2)登录密码通过MD5进行加密
String password = Md5.getMD5String(user.getPassword());
如果登录失败,给出提示,如:图3-3
图3-3 登录提示界面
登录成功获取数据返回主页
图3-4 主页界面
代码
@RequestMapping("/index")public String index(Model model, HttpSession session){Param param = paramMapper.findParamByName("views");if(param!=null){paramMapper.updateParamById(param.getId());}else{paramMapper.addParam(new Param(UUID.randomUUID().toString().replace("-",""),"views",1));}Integer views = paramMapper.findParamByName("views").getNum();List