77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2019-03-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

安徽工业大学毕业设计(论文)

图5-5 读者借书流程时序图

由此可见借书流程是一个流水式操作,借书的前提必须在书籍信息、读者信息已完成的前提下进行的。程序的时序图是表达程序动态处理流程的最佳方式,可以对程序的功能形成一个直观的认识。

5.4 系统相关代码说明

5.4.1 相关配置文件说明

客户端发出一个http请求给web服务器, web服务器对http请求进行解析,

26

安徽工业大学毕业设计(论文)

如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),那么,web容器将请求转交给DispatcherServlet。 DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。那么我们先来看看DispatcherServlet配置文件,便于让他实现我们想要的效果。HttpServlet是在web.xml文件中声明的。

通过classpath*:config/spring/spring-mvc.xml加载SpringMVC的核心配

置文件。根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。 Handler再对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。最后,Dispatcher通过model解析出ModelAndView()中的参数进行解析

27

安徽工业大学毕业设计(论文)

最终展现出完整的view并返回给客户端。

通过加载classpath*:config/spring/spring-*.xml,将连接数据库连接,同时集成了hibernate,做到对编写代码更加的方便快捷。

使用spring的HibernateDaoSupport.这样的话dao层使用spring提供的一系列模板方法,同时不用关心session, exception,事务管理也交给了spring。直接加载资源CommonService就可以调用CommonserviceImpl中的基本的方法。 5.4.2 spring注解及其先关代码介绍

在了解了图书管理系统的工作的流程之后,就可以对以上提供的流程进行编写,由于整个项目的框架是有MVC模式的,所以以下会提供相关程序类的一些代码片段,通过这些具有代表性的代码展现程序在代码实现上的成果。

5.4.2.1 Entity类及相关代码

Hibernate在处理实体类的时候提供了对象间的关联关系,在增删改查的时候可以使用Hibernate设置好的关联关系对实体类对象进行联级操作,这样的设置可以大大的减少编写程序时的工作量,从而提高编写代码的效率,然而,书写SQL语句时如果涉及到级联操作的话,需要用到多表联合查询,大大的增加了代码量,因此可以得出Hibernate对于SQL语句的封装在某些场合是合适的。Spring集成Hibernate使得SQL的联级操作变得更加简单、快捷。

如Borrow类,与数据库表的对应和对其他实体类之间的关联,通过@Entity和@Table(name = \直接建立了数据库表与实体类之间的关系,用数据操作过之后在进封装,同时使用 @ManyToOne、@JoinColumn(name = \nullable = true)、@NotFound(action = NotFoundAction.IGNORE), 使得Borrow和Reader类的对应关系多对一,所以在Borrow中封装了Reader累的对象没具体的代码如下:

@Entity

@Table( name = \public class Borrow {

28

安徽工业大学毕业设计(论文)

@Id

@GeneratedValue(generator=\

@GenericGenerator(name = \@Column( length=32 ) private String id ;

@ManyToOne

@JoinColumn( name = \@NotFound(action = NotFoundAction.IGNORE) private Reader reader;

这样编写不仅仅完成了多种关联关系的映射,同时,也在使用Hibernate

session的sava(),delete(), get()、update()等方法操作Borrow对象的时候,就会级联操作Reader对象,这样就简化了书写复杂的SQL---多表链接语句。当然,Hibernate的缺点也是相当的明显的,那就是查询效率的问题,他在操作的时候不仅仅执行的是一条语句,有可能执行多条,这样就导致了操作性能的问题。这样就需要应地适宜的来选取,要用什么语句来对数据库进行操作。当然,本系统数据库结构比较简单,所以就采用的的失眠所说的这种方式,Hibernate相比JDBC要占用更多的数据库资源,因此关联关系的设置要多多慎重。

5.4.2.2 Controller类及相关代码

Controller类主要的总用就是一点,那就是通过请求的url获取指定的Controller,同时获取指定的方法,再通过方法对页面传进来的参数获取得到,之后操作并绑定数据重新传到相应的页面。具体的,如:BorrowController通过 @Controller和@RequestMapping(\,通过@Controller声明这是一个Controller,通过@RequestMapping(\获取请求url的路径,确定请求到那个Controller进行操作。再通过方法上具体的@RequestMapping(\获取具体执行的方法。其中 @Resource(name=\是加载配置文件spring-beans.xml中dao的代理声明。@RequestParam(value=\

29

安徽工业大学毕业设计(论文)

defaultValue=\是url中所带的参数的获取。最后,通过return语句直接返回给springMVC配置文件,确定页面路劲。具体代码如下:

@Controller

@RequestMapping(\public class BorrowController {

@Resource(name=\private CommonService commonService;

\

@RequestMapping(\

public String getBorrowList(Model model, PageData pageData,

@RequestParam(value=\@RequestParam(value=\HttpSession httpSession){

//String readerId = (String)httpSession.getAttribute(\ StringBuilder hql = new StringBuilder(); if(!\

hql.append(\if(!\

hql.append(\

}

}else{ }

//System.out.println(readerId);

pageData = commonService.getPageDataHql(Borrow.class, pageData,

30

if(!\ }

hql.append(\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库图书管理系统毕业设计(6)在线全文阅读。

图书管理系统毕业设计(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/504622.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: