东南大学成贤学院毕业论文
(11)图书记录表lib_book_record,如表4.11所示。
该表用于存储图书的入库和损耗记录,用以准确记录每本图书的库存增减情况。
表 4.11 图书记录表
列名 id book_id number operate create_by create_date update_by update_date remarks del_flag 数据类型 varchar varchar decimal varchar varchar datetime varchar datetime varchar char 64 64 10,0 100 64 64 255 1 长度 主键 是 是否为空 非空 非空 非空 非空 编号 图书编号 数量 操作 创建者 创建时间 更新者 更新时间 备注信息 删除标记 注释 (12)借阅表lib_borrow,如表4.12所示。
该表用于存储图书借阅信息,用以准确记录每本图书的借阅记录。
表 4.12 借阅表
列名 id book_id user_id borrow_date renew_date back_date return_flag punish_type punish_by punish_date punish_remark create_by create_date update_by update_date remarks del_flag
数据类型 varchar varchar varchar datetime datetime datetime varchar varchar varchar datetime text varchar datetime varchar datetime varchar char 64 64 64 10 10 36 64 64 255 1 16
长度 主键 是 是否为空 非空 非空 非空 非空 非空 编号 图书编号 用户编号 借出日期 续借日期 归还日期 当前状态 处罚类型 处罚人 处罚时间 处罚备注 创建者 创建时间 更新者 更新时间 备注信息 删除标记 注释 东南大学成贤学院毕业论文
4.2 数据库关系图
在该系统的数据库中,用户角色表记录用户表与角色表的一对多关系,角色机构表记录角色表与机构表一对多关系,角色菜单表记录着角色表与菜单表的一对多关系,借阅表中记录着用户和图书的关系,即为借阅信息。图书表和图书记录表为一对多关系,即一本书可以有多条入库或损耗记录。
图4.1 数据库关系图
17
东南大学成贤学院毕业论文
第五章 系统程序设计
5.1 概述
在设计系统的Web层的时候应用了常见的MVC模式,M是业务模型,V是用户界面,C是控制器,强制的把程序的输入、输出和处理分开。也就是MVC所说的三个核心部件:模型、视图、控制器。
MVC模式的好处在于它在程序中能处理很多不同的视图。在视图在说,只是作为一种输出数据的手段。视图层和业务层分离,使可以更改视图层的代码,不需要改变业务层的代码可以是视图多样化。也可以不改变视图层的代码,改变业务层的代码,使显示的数据内容多样化。从中可以看出MVC模式的重用性比较高,随着技术不断进步,越来越多不同的访问方式来访问应用程序。MVC模式就是允许不同的视图来访问服务端的一样的代码。即多个视图共享一个模型。
本系统采用Spring的MVC模式,由于Spring Mvc是一个轻量的控制反转和面向切面的框架。而且它是一个纯正的servlet系统,和它本身有代码,易用性高。
5.2 登录模块
本模块主要是用户想要使用本系统需要通过首页登录通过进入该系统。用户通过输入账号和密码,系统验证通过后,在进入系统的时候,系统会根据这个用户获得它相应的角色和权限,并显示该用户所能查看的界面。如果登陆失败,则系统会跳回登陆界面,并提示错误信息。本系统的登陆界面如图5.1所示。
图 5.1 登陆界面
18
东南大学成贤学院毕业论文
登陆界面在服务端进行的用户登录操作的流程图如图5.2所示。
图 5.2 用户登录流程图
登录模块相关代码:
/**
* 管理登录 */
@RequestMapping(value = \, method = RequestMethod.GET)
public String login(HttpServletRequest request, HttpServletResponse response, Model model) {
User user = UserUtils.getUser(); // 如果已经登录,则跳转到管理首页 if(user.getId() != null){
return \+Global.getAdminPath(); }
return \; }
/**
* 登录失败,真正登录的POST请求由Filter完成 */
@RequestMapping(value = \, method = RequestMethod.POST)
public String login(@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String username, HttpServletRequest request, HttpServletResponse response, Model model) {
19
东南大学成贤学院毕业论文
User user = UserUtils.getUser(); // 如果已经登录,则跳转到管理首页 if(user.getId() != null){
return \+Global.getAdminPath(); }
model.addAttribute(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM, username); model.addAttribute(\, isValidateCodeLogin(username, true, false));
return \; }
/**
* 登录成功,进入管理首页 */
@RequiresUser
@RequestMapping(value = \)
public String index(HttpServletRequest request, HttpServletResponse response) { User user = UserUtils.getUser(); // 未登录,则跳转到登录页 if(user.getId() == null){
return \+Global.getAdminPath()+\; }
// 登录成功后,验证码计算器清零
isValidateCodeLogin(user.getLoginName(), false, true); // 登录成功后,获取上次登录的当前站点ID
UserUtils.putCache(\, CookieUtils.getCookie(request, \)); return \; } /**
* 获取主题方案 */
@RequestMapping(value = \)
public String getThemeInCookie(@PathVariable String theme, HttpServletRequest request, HttpServletResponse response){
if (StringUtils.isNotBlank(theme)){
CookieUtils.setCookie(response, \, theme); }else{
theme = CookieUtils.getCookie(request, \); }
return \+request.getParameter(\); } /**
* 是否是验证码登录
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库图书管理系统毕业论文(5)在线全文阅读。
相关推荐: