Java课程管理网站开发 ——在线拟题和阅卷的设计与实现-毕业论文_第1页
Java课程管理网站开发 ——在线拟题和阅卷的设计与实现-毕业论文_第2页
Java课程管理网站开发 ——在线拟题和阅卷的设计与实现-毕业论文_第3页
Java课程管理网站开发 ——在线拟题和阅卷的设计与实现-毕业论文_第4页
Java课程管理网站开发 ——在线拟题和阅卷的设计与实现-毕业论文_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(科研训练、毕业设计)题 目:Java课程管理网站开发在线拟题和阅卷的设计与实现姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号:指导教师: 职称: 年 月4Java课程管理网站开发在线拟题和阅卷的设计与实现摘要 网络教学逐渐走入人们的视线,进入我们的生活。广义的说,早期的网络学习通常指使用搜索引擎查找自己不知道的知识,而现在各种专业教学网站层出不穷,这使得远程教学从不可能变成了可能。网络教学已经不再是单纯地下载、观看教学视频,还需要教师和学生通过网络进行互动和交流,达到更好的学习效果。本论文对Java课程管理网站项目的架构和在线拟题、阅卷子模块进行详细设计。项目是为厦门大学软件学院Java课程教学而设计,满足教学的所有需求,主要包括课件模块、公告模块、考试模块、答疑论坛模块和作业模块五个部分。项目实现后软件学院Java课程教学将加入更多的互动环节,摆脱原来老师讲、学生听的填鸭式教育方式,使学生学习更有兴趣,老师上课更有目标。此系统开发环境为全开源的Eclipse+Tomcat+Mysql。项目使用了Spring框架整合Hibernate;采用Hibernate Annotation语法建立持久类,实现对象到关系的适配;将数据访问对象(DAO)作为数据接口层;利用直接Web远程控制(DWR)将后台的Java类映射到JavaScript,进而减少不必要的网络传输,加快了页面打开速度。而为了达到跨浏览器的要求,系统采用了对各浏览器都支持很好的Dojo技术。另外,本文还特别针对考试模块的在线拟题和阅卷子模块进行了详细设计,对这两个子模块的流程进行了分析,并详细说明了其中使用的类和数据库。关键词 在线考试 Hibernate Dojo 数据访问对象 直接Web远程控制The Development of Java Course Management SiteDesign and Realization of Online Drawing and Marking Test PaperAbstractStudying Online gradually comes into the peoples minds and their lives. Generally, the early form of Studying Online was using the Search Engine to search the knowledge they didnt know. But now a number of professional teaching websites emerge, which provides a possible opportunity for long distance learning. Studying Online is no longer simply to download teaching video and watch, teachers and students need interact and communicate through the Internet, which can achieve better learning Effects.This thesis is detailed design for the Website of Java Course Management, especially for the system framework and Online Examination module. The project is used by Java course in Software School of Xiamen University. This software must meet all the needs of teaching, including lecture module, notice module, examination module, Q&A module and homework module. From now on, the Java course of Software School will add more interactive elements and get rid of the original mode of teaching by the teacher and listening by the students, making students being more interested in learning and teacher having unambiguous target.The system adopts three open source development environments Eclipse,Tomcat and Mysql. Hibernate is integrated by the Spring framework here. The software Constructs some persistent classes by the Hibernate Annotation grammar, achieving the Object Relational Mapping. The Data Access Object (DAO) is used as data interface layer. Direct Web Remoting (DWR) can map the background Java class to the proscenium JavaScript, which reduces the unnecessary network transmission and speeds up the browsing speed. In order to achieve the cross-browser requirement, the system adopts Dojo which supports a wide variety of browsers.In addition, the thesis also carries out a detailed design for Online Examination, especially for the Online Drawing the Test Papers and Online Marking Exam Papers modules. Besides, the paper analyzes the process of these two sub-module and makes a detailed explanation for the classes and the database they use.Key words Online Examination Hibernate Dojo DAO DWR.目 录第一章 绪论11.1课题的背景和意义11.2本文的主要工作和组织结构1第二章 系统总体设计22.1系统需求22.1.1功能性需求22.1.2接口要求42.1.3运行时间约束42.2开发运行环境52.3基本设计概念和处理流程72.4系统层次结构82.5功能与程序的对应关系9第三章 系统详细设计103.1系统配置介绍103.1.1 Hibernate的使用103.1.2 Direct Web Remoting的使用193.2关键技术Dojo介绍223.2.1 Dojo的优点223.2.2 Dojo的结构233.2.3如何开始Dojo以Grid为例243.2.4 Dojo的发展前景273.3类设计283.3.1持久类283.3.2数据访问接口类293.3.3业务逻辑类303.4数据库设计303.5页面流程设计323.5.1教师拟题页面323.5.2教师修改试卷页面333.5.3增加题型和填充题库页面353.5.4教师批阅试卷页面36第四章 系统运行结果37第五章 总结与展望41致谢语42参考文献43ContentsChapter 1 Introduction11.1 Research Background11.2 Main Task of This Thesis and Thesis Organization1Chapter 2 System Design22.1 System Requirement22.1.1 Functional Requirements22.1.2 Interface Design42.1.3 Running Time Constraints42.2 Development Environments52.3 Basic Design Concepts and Processes72.4 Structure of System Layer82.5 Correspondence between Functions and Procedures9Chapter 3 Detail Design103.1 Introduction of System Configuration103.1.1 the Use of Hibernate103.1.2 the Use of Direct Web Remoting193.2 Key TechnologyDojo223.2.1 Strongpoint of Dojo223.2.2 Structure of Dojo233.2.3 How to begin your Dojoan Example for Grid243.2.4 Development prospects273.3 Class Design283.3.1 Persistent Class283.3.2 Data Access Object293.3.3 Business Logic Class303.4 Database Design303.5 Process of Pages Design323.5.1 Online Drawing Test Paper323.5.2 Amending Test Paper333.5.3 Increase Question Type and Adding Questions353.5.4 Online Marking Test Paper36Chapter 4 Running Results37Chapter 5 Conclusions and Future Work41Acknowledgements42References43第一章 绪论飞速发展的计算机和网络技术把地球真正变成了地球村,Internet已经渗入到我们生活的各个方面。国家的政治、经济,人们的生活、工作,没有网络的加入是无法想象的,网上购物、汇款、看新闻、看电影随处可见。我们正式进入了一个信息爆炸知识爆炸的生活阶段,每天都有大量的新知识、新词汇产生,靠读书来知天下事早已经写入了历史。80后有一个特点:他们的字典里没有“不知道”,只有“等等,我百度一下”。所以网络学习、网络教学越来越受到人们重视,并已经成为目前网络应用的一个重要方面。1.1课题的背景和意义教育部根据当前的教育形势,提出了建设以“精品课程”为主要内容的质量工程计划。利用现代化的计算机网络技术和多媒体技术手段将精品课程放在网络上并免费开放,以实现优质教学资源共享,提高高等学校教学质量和人才培养质量。我国各高校都非常重视精品课程建设,均将其列为大学教学质量和教学改革工程的重要组成部分。本毕业设计构建一个Java课程管理系统,包括课件模块、答疑论坛模块、公告模块、考试模块和作业模块五个部分。系统将作为学院Java课程精品课程网站对外发布资源,并起到辅助教学的作用,更好地使教师和学生之间进行互动,同时保存学生作业记录和考试记录,便于进行学习情况分析。系统保留所有学生提出的问题,试图建立一个问题库和一个试题库,帮助学生更好地进行学习,减轻教师的负担。从此以后教师不再需要对不同的学生解释一个相同的问题,而是把更多精力放在新问题新技术上,同时也解决了由于目前学校两个校区导致教师学生交流不够的问题,使学生和老师在网络上进行全面的交流。1.2本文的主要工作和组织结构本文对Java课程管理网站的架构进行详细介绍,同时对系统使用的Hibernate技术和DWR技术进行阐述;由于系统使用了大量的Dojo控件进行页面开发,所以在本文中详细介绍了Dojo这一关键技术的配置使用方法;本文主要针对在线考试模块教师拟定试题和批改试卷子模块进行了详细设计。本文在第二章介绍网站系统的总体需求和设计方案,接下来在第三章对系统进行详细设计,第四章列出了系统的运行结果。第二章 系统总体设计为了满足Java课程教学的需求,系统需要包含教学中的方方面面,对教师起到辅助作用的同时,对学生也起到引导、帮助和督促的效果。相对于本院实际情况,由于教师和学生不在同一个校区不能很好地交流,系统特加入一个类似论坛的功能模块即答疑模块,同时系统还要包括课件模块、考试模块、作业模块、公告模块以及其他附加功能。2.1系统需求系统的课件模块、考试模块、作业模块、公告模块和答疑模块这五个模块都有对应的教师处理和学生处理两个部分。所有操作界面都要求除了满足需求定义的基本功能之外,还要具备如下非功能需求:使用方便易学;界面美观大方;功能稳定;设计时充分考虑可扩展性,便于增加新功能以及进一步扩展为其他课程管理系统。2.1.1功能性需求Java课程管理网站具体可分为以下五个模块。如图2-1,图2-2所示,在教师和学生的用例图中可以很清楚地看到模块的划分和功能。1. 课件模块教师可以创建、删除章节,添加、删除各章节的内容及注意事项;上传、删除、下载课件及参考资料等附件;学生可浏览各章节内容及注意事项,并下载课件及参考资料。2. 答疑模块该模块类似论坛形式,问题以贴记。每贴分三部分,问题、参考答案和回复。问题由提问学生发,参考答案由教师发,回复部分为其他学生对此问题的见解。同时具有搜索功能并可由教师设置精华贴。3. 考试模块教师拟定考题,题型包括选择题,填空等主观题以及程序题等非主观题;教师可以增加题型,增加题库信息,试卷题目可以在题库中选择也可以自行输入并定义每一题的分数;学生在线答题,主观题自动算分,非主观题由教师查看或者下载并给分,自动计算总分;同时具备学生在线进行自测考试功能;另外,对阅卷人来说所有题目的总分都是10分,自动进行分数转换,使得阅卷人不需要认真对照每一题的具体分数。4. 作业模块学生对本人作业进行上传、下载和删除,查看作业评分及对历次作业的成绩统计;教师对作业进行下载和评分,查看历次作业内容,学生上交情况及对成绩进行统计分析。5. 公告模块教师发布、修改课程表,并发布、修改和删除公告消息;学生可以查看课程表及公告消息。图2-1 系统教师用例在以上五个主要模块之外,系统还需要增加一些附属功能,这些功能包括:学生用户由教师导入学生名册的方式创建;个人账户的密码修改;管理员添加、删除各种权限类型的帐号,并可初始化各帐号的密码。除了以上功能性需求之外,系统仍需要满足如下非功能需求:各模块数据库统一;用户界面风格一致,简洁大方,易学易用;能够真正为教学所用,增加学生学习动力,增加教师与同学之间的互动。图2-2 系统学生用例2.1.2接口要求虽然系统主要使用者是接受过高等教育大学教师以及学生,但是本着简单易用的原则,本系统不采用过分复杂的操作,所有操作均是常用的网络使用方法。系统人机接口部分均用文字输出,不使用任何错误代码。在用户操作界面上方或侧边直接介绍操作指南。用户操作出错后,使用弹出窗口方式指出,窗口内部是对错误操作的文字描述。为了防止不良用户的恶意破坏,页面之间不在地址栏上进行数据传输,系统内部页面之间数据传输均采用表单的post方法,不在页面上显示所传数据。2.1.3运行时间约束课程管理系统包括很多对数据库的操作,还有大量的数据传输,比如在线考试子系统中,一定要保证页面浏览速度,以避免学生在线考试由于网络问题影响考试。为了加快对数据库读写的速度,加快用户浏览使用速度以减少等待时间,系统采用JavaScript来加快网页浏览速度。在JavaScript这样的客户端脚本语言出现之前,传统的数据提交和验证工作均由客户端浏览器通过网络传输到服务器上进行。如果数据量很大,这对于网络和服务器的资源来说实在是一种无形的浪费。而使用JavaScript就可以在客户端进行数据验证,这样就减少了很多原本要在服务器和客户端之间的数据传输,加快页面浏览速度。同时,JavaScript还有另外一个优点,它可以方便地操纵各种浏览器的对象,可以使用JavaScript来控制浏览器的外观,状态甚至运行方式,可以根据用户的需要“定制”浏览器,从而使网页更加友好。JavaScript可以使多种任务仅在客户端就可以完成而不需要网络和服务器的参与。鉴于系统对运行时间的要求以及JavaScript的特性,本系统采用JavaScript来进行客户端验证。2.2开发运行环境本系统开发环境为:开发工具:Eclipse 3.3开发语言:Java jdk1.6.0操作系统:Windows XP数据库 :MySQL 5.0WEB应用服务器:Tomcat 5.5系统运行环境:Windows XP、Internet Explorer和Firefox考虑校园课程系统成本的限制,同时为了满足与系统的其他页面特效兼容的要求,本系统最终选择Eclipse+Tomcat+MySQL三个开源环境。开放源代码软件1就是在开放源代码许可证下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。下面对本项目选用的Eclipse、Tomcat、MySQL作个简要的介绍。1. EclipseEclipse是一个开放源代码的,与NetBeans、Sun ONE Studio和Borland Jbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一2。IBM在最近几年也一直在大力支持该项目,目标是将其做成用以替代IBM Visual Age for Java(简称IVJ)的下一代IDE开发环境,并于2001年11月宣布向该项目的研发投入4千万美元资金。就其本身而言,它是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。商业开发平台Jbuilder 2007也是基于Eclipse开发的。2. TomcatTomcat34服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat拥有先进的技术和稳定的性能,所以其深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前流行的Web应用服务器。Tomcat深受广大程序员的喜欢,也因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat是Apache服务器的扩展,但它是独立运行的。3. MySQLMySQL是一个开放源码的中小型关系数据库管理系统,开发者为MySQL AB公司5。由于具有体积小、速度快、总体拥有成本低等优点,尤其是开放源码这一特点,MySQL被广泛地应用在Internet上的中小型网站和一些商业交易系统中。美联社、Yahoo、美国国家航空航天局、在线旅游服务商Sabre Holdings和日本铃木汽车公司等都是MySQL数据库的用户,国内的阿里巴巴、百度和新浪也是MySQL的用户。MySQL网站的调查发现,它是增长最快的数据库,已经拥有超过一千万的安装,而且每天有五千多的下载。MySQL是最受欢迎的开源SQL数据库管理系统,它是一个快速、多用户、多线程且能够在多种操作系统平台下运行的数据库管理系统。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置的软件中去。2.3基本设计概念和处理流程系统主要是为了教师和学生课程需要而设计,所以要求只有登录后才能进行操作,同时为了达到简单易用的效果,大的功能点都直接出现在菜单里。对于需要多个步骤才能完成的操作,界面需要在醒目位置提示操作方法,并对操作进行序列化,用户只需要简单地一步一步就可以完成所有复杂的操作。如图2-3所示,每一个用户操作的不同模块之间、模块内部需要做到低耦合高内聚。在不同模块之间的操作绝对不能互相影响。同时每一个模块都在用户登录后直观地显示出来,使用户一目了然。图2-3 系统模块及操作流程2.4系统层次结构图2-4 系统架构层次本系统采用常见的三层架构,如图2-4所示,包括数据存储层、业务层和WEB表示层。数据存储层采用Mysql数据库进行数据存储,为了实现面向对象技术和数据库技术的适配,增加了Model层即数据持久层。在这一层里面用Hibernate来实现对象关系(O-R)映射的管理。因为这一层是用来过渡面向对象技术和数据库的,虽然他并不是纯粹的物理数据,但是我们仍将这一数据持久层划归到数据层上。上图中的Data Access Object层和Service层是属于中间层即业务层的。在Service层即业务逻辑层,用Spring这个轻量级框架作为业务框架,同时我们使用Spring整合了Hibernate。在业务逻辑层和数据持久层之间用数据访问接口即DAO(Data Access Object)层封装数据库的操作。系统最高层也就是Web表示层可以再细化成两个层次结构,他们是Web表示层和Web Service层,在Web Service层中用DWR(Direct Web Remoting)实现从Java到JavaScript的远程功能调用方法,从而实现表示层与业务逻辑层的耦合,所以我们称它为Web Service层,这一层是属于系统最高层的。2.5功能与程序的对应关系本系统主要有建立持久类、业务逻辑类、数据访问接口类和页面操作四个功能部分,如下表2-1所示,此表列出了功能点与程序的对应关系,对于页面操作只列出了教师出卷部分的详细功能。表2-1 系统功能与程序对应关系功能对应程序持久类构建包com.model下的所有类具体程序如:PaperInfo.java QuesInfo.java数据访问接口的建立IgenericDao.java genericDao.java业务逻辑类的建立包com.service.impl下的所有类具体程序如:PaperInfoService.java QuesInfoService.java建立新试卷./jiaoshichuti/chujuan1.jsp选择试卷题型./jiaoshichuti/chujuan2.jsp选择试卷题目./jiaoshichuti/chujuan3.jsp核算试卷分数./jiaoshichuti/chujuan4.jsp查看所有出卷状态试卷./jiaoshichuti/yiyoushijuan.jsp修改试卷信息./jiaoshichuti/xiugai1.jsp修改试卷题型信息./jiaoshichuti/xiugai2.jsp增加试卷题型./jiaoshichuti/xiugai3.jsp增加题库题目./jiaoshichuti/shurutiku.jsp查看修改题型./jiaoshichuti/zengjiatixing.jsp第三章 系统详细设计3.1系统配置介绍系统采用了Spring框架整合Hibernate,并在Web Service层使用Direct Web Remoting,这使得前台的JavaScript可以直接使用后台的Java类,大大加快了开发速度。下面是这两个技术的配置使用介绍。3.1.1 Hibernate的使用1. Hibernate概述Hibernate是对象-关系映射(Object-Relational Mapping)的解决方案,简写为ORM,即将Java中的对象与对象关系映射至数据库中的表格与表格之间的关系,Hibernate提供了这个过程中自动对应转换的方案6。Hibernate是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据之间的映射。他的目标是成为Java中管理持续性数据问题的一种完整的解决方案。它协调应用与关系数据库的交互,让开发者解放出来专注手中的业务问题。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以使用面向对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,更重要的是Hibernate可以在应用EJB的J2EE架构中取代CMP(Container Managed Persistence),完成数据持久化的重任7。2. Hibernate架构图3-1 Hibernate概要架构如上图3-1所示,这幅图说明了Hibernate使用数据库和配置文件数据来为应用程序提供持久化服务。接下来更细致的介绍一下Hibernate运行时的体系结构,事实上,Hibernate是比较复杂的,提供了多种不同的运行方式,以下是两种极端情况。在轻型体系中,应用程序自己提供JDBC连接,并且自行管理事务,这种方式使用了HibernateAPI的一个最小子集。体系结构如图3-2所示。图3-2 Hibernate轻型架构图3-3描述了Hibernate“全面解决”的架构方案。在全面解决体系中,应用程序的所有底层JDBC和JTA API都被抽象了,Hibernate会管理所有的细节。图3-3 Hibernate详细架构下面是对上图3-1、图3-2和图3-3中一些对象的定义。SessionFactory (net.sf.hibernate.SessionFactory)是对属于单一数据库的、编译过的、映射文件的、一个线程安全的、不可变的缓存快照。它是Session的工厂,是ConnectionProvider的客户。可能持有一个可选的(第二级)数据缓存,可以在进程级别或集群级别保存可以在事务中重用的数据,可能持有事务之间重用的数据缓存。会话Session (net.sf.hibernate.Session)是单线程,生命期短促的对象,代表应用程序和持久化层之间的一次对话。它封装了一个JDBC连接,也是Transaction的工厂,保存有必需的(第一级)持久化对象的缓存,用于遍历对象图或者通过标识符查找对象。持久化对象(Persistent Object)及其集合(Collection),是生命期短促的单线程对象,包含了持久化状态和商业功能,可能是普通的JavaBean/POJOs;唯一特别的是它现在从属于且仅从属于一个Session,一旦Session被关闭,它们将从Session中取消联系,可以在任何程序层自由使用。临时对象(Transient Object)及其集合(Collection)是没有从属于一个Session的持久化类的实例,可能是刚刚被程序实例化,还没有来得及被持久化,或者是被一个己经关闭的Session所实例化的实例。事务(Transaction)是单线程,生命期短促的对象,应用程序用它来表示一批工作的原子操作。它是底层的JDBC , JTA或者CORBA事务的抽象。一个Session在某些情况下可能跨越多个Transaction事务。ConnectionProvider是JDBC连接的工厂和池。从底层的DataSource或者DriverManager抽象而来,对应用程序不可见,但可以被开发者扩展和实现。TransactionFactory(net.sf.hibernate.Transaction)是事务实例的工厂,对应用程序不可见,但可以被开发者扩展和实现。在上面的轻型结构中,程序没有使用Transaction/TransactionFactory或者ConnectionProvider API,而是直接和JTA/JDBC对话了。通过前面的介绍可以看出,尽管Hibernate有多种工作形式,但它所代表的ORM工具是介于应用程序和数据库之间,实际上是在介于应用程序和数据库之间的一个中间层工作,来完成对象到数据库的映射8。3. Hibernate对象的生命周期Hibernate定义了三种状态:Transient(临时)、Persistent(持久)和Detached(托管)。在持久层的对象也称为PO(Persistence Object),瞬时对象和托管对象也可称为VO(Value Object)。它们相互转化的状态图如图3-4所示。图3-4对象在Hibernate中的状态(1). 临时对象在Hibernate中,使用new操作符初始化的对象。该对象的状态是临时的,这些对象没有跟任何数据库表的行相关联,只要应用不再引用这些对象(不再被任何其它对象所引用),这些对象的状态将会丢失。这时,这些对象的生命期将会有效地终止,变得不可访问,交给垃圾回收机制来回收。在Hibernate中,所有的临时实例都是非事务的,临时实例状态的修改不能在任何事务的上下文中执行。Hibernate不能对临时对象提供任何回滚功能。仅仅被其他临时实例引用的对象也是临时的。把实例从临时状态转换为持久状态有两种方式:调用持久管理器的save()方法或者从已经存在的持久实例中创建引用。(2). 持久对象持久实例是任何具有数据库标识的实例,持久实例有一个主键值设为数据库标识符。持久实例可以由应用程序初始化的对象调用持久管理器(Hibernate Session)的save()方法实现持久化。然后,持久实例就跟持久管理器关联起来,甚至是引用另一个己经与持久管理器相关联的持久对象来实现持久化。持久实例也可以是通过执行查询,通过标识符查找从数据库中检索出来的实例,或者是从另一个持久实例开始导航对象图。持久实例通常是同Session相关的,是事务的。持久实例在事务中进行操作,在事务结束时进行数据库同步。当事务提交时,通过执行SQL的Insert、Update和Delete语句把内存中的状态同步到数据库中,这个过程也可以在其它时间发生。已经分配主键值但是还没有插入到数据库中的持久实例是新的持久实例,新的持久实例会保持“新”的状态直到同步发生。Hibernate能够确切地知道哪个属性改变了,可以在SQL的Update语句中仅包含那些需要更新的列,从而提高系统的性能。最后,持久实例通过调用持久管理器API的delete()方法使其变成临时对象,进而删除数据库中相应的行。(3). 托管对象当事务结束时,同持久管理器相关联的持久实例仍然存在。在Hibernate中,当关闭Session时,这些实例就失去了同持久管理器的关联,这些对象就是托管的,表明这些状态不再跟数据库中的状态同步,不再在Hibernate的管理下。然而,这些实例仍然含有持久数据。应用程序通常含有事务(及持久管理器)之外的托管对象的引用。Hibernate可以让新的持久管理器重新关联这些实例以便在新事务中重用这些实例(重新关联后,这些对象被认为是持久的)。Hibernate也提供了一个显式的托管操作:Session的evict()方法。然而,这个方法只在Cache管理中使用,通常不显式地执行托管。所有在事务中检索出来的对象在当Session关闭或当对象被序列化时就变成托管的9。4. Hibernate的配置实现利用Spring提供的对Hibernate的支持,我们通过在Spring框架中集成Hibernate的形式来完成Hibernate的具体实现10。(1). 配置Hibernate在配置文件applicationContext-hibernate.xml中进行配置,其中还用到如下bean,将后面的$.替换为指定的properties文件中的值。WEB-INF/classes/perties在applicationContext-hibernate.xml中对Spring Hibernate的具体配置如下,其中使用 AnnotationSessionFactoryBean类轻松建立一个基于注释的Hibernate会话工厂。$hibernate.dialect$hibernate.show_sql$hibernate.hbm2ddl.auto需要加载的Hibernate实体类另外,在本项目中还使用了Hibernate开发小组推荐使用的c3p0连接池,同样在文件applicationContext-hibernate.xml中进行配置。$ (2). 持久化类持久化类主要是对持久化字段声明访问器,即声明持久化字段对应的get和set方法,属性不一定需要声明为public的,Hibernate可以对default,protected或者private的get/set方法对应的属性一视同仁地执行持久化。持久化类的属性类型必须和要映射的数据库字段类型相一致。本系统中的持久化类需要实现java.io.Serializable接口,其实持久化类非常简单,下面的例子就是一个简单的持久化类,它所对应的数据表只有一个字段String型的test1。public class ExampleTestprivate String test1;public void settest1(String test1)this.test1 = test1;public String gettest1()return test1;另外,在持久类的编写过程中使用了Hibernate Annotation实现Hibernate的数据库映射,使用Spring的封装来配置annotation pojo。在使用Hibernate Annotation的时候需要使用到一些annotation表达式,下面介绍在项目中用到的七个表达式。l Entity 表明是一个Entity对象,默认表名与对象名相同,否则加上Table(name = ) 这样的配置语句;l Idl GeneratedValue(strategy=GenerationType.AUTO)标识主键和生成策略;l Column()映射字段的列属性;l ManyToOne()l Cascade(value=CascadeType.REFRESH)l JoinColumn(name = )配置多对一映射(3). 实现CRUD操作的DAO( Data Access Object数据访问接口)本系统构建了一个为数据源提供CRUD(创建、读取、更新、删除)操作的GenericDao类,继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport,封装了各种数据库操作的方法,当业务类需要访问数据库时,直接调用继承了GenericDao类相应的Dao子类。GenericDao实现的方法包括各种创建、读取、更新、删除和查询操作。(4). Hibernate的事务管理事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,也防止数据在修改时受到用户干扰。本系统用Spring的自动代理来配置Hibernate的事务管理。以下是在Spring中配置Hibernate的事务管理器需要自动创建事务代理的bean transactionInterceptor3.1.2 Direct Web Remoting的使用1. DWR概述11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论