ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:1.32MB ,
资源ID:2355822      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2355822.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于java的oa办公自动化设计.doc)为本站会员(为人民服务)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于java的oa办公自动化设计.doc

1、本科生毕业论文设计题目 基于 J2EE 的办公自动化系统的设计和实现 作者姓名 指导教师 所在学院 专业(系) 班级(届) 完成时间: 年 月 日I摘要 .1第一章 绪论 .21.1 OA 概述 21.2 技术背景 .21.3 课题研究的意义及可行性 .2第二章 Struts 介绍 .32.1 MVC 模式简介 32.1.1 模型 42.1.2 视图 42.1.3 控制层 42.2 Struts 框架的结构及实现方法 42.2.1Struts 框架的组成 .52.2.1 Struts 的基本组件 .52.2.2 Struts 的工作过程 .62.3 Struts 的国际化 7第三章 Hiber

2、nate 框架介绍 83.1 数据库操作的 3 个阶段 .83.2 ORM 对象关系映射 10II3.3 Hibernate 介绍及工作过程 113.3.1 Hibernate 的组成 .113.3.2 Hibernate 的工作过程 .12第四章 系统功能的实现及部署 .134.1 系统概述 .134.2 系统分析 .134.2.1 需求分析 134.2.2 可行性分析 144.3 系统设计 .144.3.1 总体设计 144.3.2 详细设计 154.3.3 确定并搭建开发环境,并对开发环境进行测试 184.3.4 系统实现 .184.3.4.1 Hibernate 的实现 184.3.4

3、.2 Struts 的实现 244.3.5 系统的部署及运行 274.3.5.1 系统的部署 .274.3.5.2 系统试运行 .27第五章 开发总结及前景 .27致谢 .28IIIAbstract.29参考文献 .311摘要办公自动化(OA-Office Automation)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。通过网络,组织机构内部的人员可跨越时间、空间协同工作。通过 OA 系统所实施的交换式网络应用,使信息的传递更加快捷和方便,从而极大地扩展了办公手段,实现了办公的高效率。现在所说的

4、办公自动化,应该是以网络为依托,在企业内部进行畅通的信息交流。在这种模式下,企业成为一个大办公室,它所属的财务、人事、行政、业务等部门都成为企业信息流中的一个环节,而不再是单个的信息孤岛。依靠这种模式,企业的组织结构能够得到简化,各个部门在信息共享的基础上进行协作,便于明确各个部门甚至每个员工的责任,而决策层可以迅速综合来自各个方而的信息,并此为依据制定企业的战略决策。没有人怀疑计算机的出现给办公室职员带来的便利,但是对现代的办公自动化而言,其目的已经不局限于减轻员工的工作量,而是要将员工从繁琐的事务性工作中解放出来,用更多的精力去关注最重要的事情,从而提高企业的效率,增强企业的综合竞争能力。

5、随着计算机网络技术的发展及企业管理模式的不断变化,目前,以传统客户/服务器模型设计的办公自动化系统已不能很好满足网络办公的需求,难以充公整合新技术的特点,进而无法充分发挥新管理模式的优势,并且要针对不同的运行环境及操作系统开发不同版本的客户端,大大增加了系统的开发难度和更新周期。本文从企业的实际情况出发,在用户需求分析的基础上,提出企业办公自动化系统的基本目标,并阐述系统结构设计和功能设计,设计了一种基于 WEB 的网络办公自动化系统,系统建立在 Browser/Servr/Database 三层构架之上,并且本系统采用 MVC(Model,View,Controller)三层架构,从而使Bu

6、siness 层和 Web 层得到了很好的分离,并且本系统采用了可跨平台的 Java语言作为主要开发语言,并使用了基于 MVC 三层架构的 Struts 框架和实现了O/R(Object/Relation)的 Hibernate 框架等 J2EE 的主流框架,并对本系统进行了国际化,从而大大增加了系统的灵活性和可扩展性。并且本系统采用 Mysql数据库,从而降低了对运行环境配置的要求。关键字:Hibernate,Struts,O/R,MVC,OA,JSP2第一章 绪论1.1 OA 概述在当今计算机网络技术和计算机技术飞速发展,人们普遍使用计算机来提高个人工作效率,但是在需要许多人一起协同工作的

7、现代工作环境中,我们更需要提高我们的整体工作效率。利用网络通讯基础及先进的网络应用平台,建设一个安全、可靠、开放、高效的办公系统。传统办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。办公自动化提了多年,但效果并不明显,人们还是仪在单机字处理和表格处理的所谓办公自动化的初级阶段,信息的交流和共享,以及团队的协同工作无法很好的实现,极大地限制了工作的效率,Internet/Intranet 的迅猛发展,为信息的交流和共享,团队的协同运作提供了技术的保证,同时也预示着网络化办公时代的来

8、临。1.2 技术背景随着 Internet 技术的飞速发展,基于 B/S 结构的服务应用程序得到了广泛的应用,实现 Web 应用的技术和框架也层出不穷,当今软件开发出现了两大应用技术标准:微软的.NET 和 SUN 公司提出的 J2EE,这两种技术各有其优缺点,J2EE 的安全性及可移植性优于.NET,但是 J2EE 的企业级应用需要专门的Container,及 Server,需要花费大量的资金在软件的运行和维护上。但是随着 J2EE 技术的不断成熟,并且大量开源框架的出现,J2EE 的优势日渐突出,且 J2EE 采用可跨平台运行的 Java 语言作为其主要开发语言,能够在不同的平台上运行,因

9、此越来越受到企业的欢迎。1.3 课题研究的意义及可行性本文通过整合一些开源的 J2EE 框架来搭建一个开发平台,使系统的开发成本降到了最低,结合 Struts 框架和 Hibernate 的数据持久化机制来构建一个轻量级的 Web 开发框架,并利用此框架来开发一个基于 B/S 的办公自动化系统,以此来说明 Struts 和 Hibernate 的整合过程。选择这种开发框架的优点有以下几个:31.快速开发。Struts 是一个成熟的 Web 层框架,称为 A Half Done Application,开发者只需要在需要的地方加入自己的处理逻辑,并且许多参数的设置是在配置文件中,需要修改时开发者

10、只需要修改配置文件即可,而不需要去修改代码的每个地方,这种开发框架已经广泛应用在许多行业的系统中,如交通,电力,银行,通信等。2.Hibernate 的数据持久化。Hibernate 是一个基于 O-R(Object-Relation)的框架,真正的适用于面向对象的开发思想。开发着只需要对对应的 Class 进行操作就可以方便的实现对数据库的操作。并且 Hibernate 框架中实现了许多对数据库中数据的操作方法,方便了 Developer 的开发。相对于使用 JDBC 开发更方便,快捷。3.成本低。Struts,Hibernate,以及所使用的开发环境及运行环境采用的都是开源软件,大降低了开

11、发和运行的成本,更适合中小企业的开发。3 可扩展性。Struts 和 Hibernate 的使用降低的项目各个模块之间的耦合度,因此企业很容易对项目的某个模块进行扩展或者进行二次开发。由于此框架容易与其他的 J2EE 框架整合,更是大大提高了系统的可扩展性。第二章 Struts 介绍Struts 是一种实现了 MVC 模式的框架,全部的请求都由一个被称为ActionServlet 的 Servlet 来接收并控制。Struts 并没有取代 Jsp,Servlet,只是将其组织起来。2.1 MVC 模式简介MVC 是一种设计模式,是 Model-View-Controller 的简写,它把整个应

12、用系统的输入、处理、输出分开,其结构图如图 2-1:4模型封装应用程序状态处理业务逻辑,通知视图的更新视图向控制器发送用户请求,接收来自模型的更新控制器定义应用程序行为,映射用户请求到模型选择相应的视图状态查询通知更新请求业务处理选择视图图 2-12.1.1 模型模型是应用程序的核心,负责处理用户的数据和实现业务逻辑的处理,并且为视图提供数据,用户所有的数据操作和业务逻辑的处理全部都由模型层处理。2.1.2 视图视图是一些 JSP 页面,是系统与用户交互的界面,即常称的 UI(User interface) ,视图用户来接收用户的输入,在 MVC 模式中,视图层不包括任何业务逻辑的处理,它只是

13、为 Model 提供数据及为用户显示 Model 层更新的数据。2.1.3 控制层控制层也称为控制器,当用户提交请求时,控制器接收用户的请求并根据用户提交的数据决定调用哪些模型来进行业务处理,同时将用户提交的数据提供给 Model 层,由 Model 来进行数据处理,然后将处理的结果给视图的形式返回给用户,从而实现用户和系统的交互。2.2 Struts 框架的结构及实现方法Struts 是 Apache 软件组织提供的一个开源项目,为 Java Web 应用提供MVC 框架,适用于开发大型可扩展的 Web 应用。在 MVC 刚刚出现的时候,开发人员需要花大量的时间在 MVC 模式的实现上,而

14、Struts 则恰恰实现了这种开发5模式,开发人员只需在此基础去实现自己的逻辑处理,而不耍花费大量的时间在模式的实现上。2.2.1Struts 框架的组成Struts 对应 MVC 的三层分别有对应的实现方法:Struts 中的 Java Bean 以及大型项目中的 EJB 对应 MVC 中的 Model 层,MVC 的 Controller 层对应 Struts的 Action 及 ActionServlet,Struts 的 ActionForm 以及 JSP 页面对应 MVC 的视图层,在视图层 Struts 提供了大量的标签库用来显示数据,Struts 的各个组成部分全部由 Strut

15、s 的主配置文件 Struts-config.xml 联系在一起。2.2.1 Struts 的基本组件Struts 主要由四个核心组件组成:ActionServlet,Action,FormBean,ActionMapping,另外 Struts 还提供了功能强大的标签库(Taglib) ,用来供客户端显示用。1)ActionServletActionServlet 是 Javax.servlet.http.HttpServlet 的子类,是 Struts框架的主控制器,根据用户的请求和配置文件和描述将请求转发给相应的Action,Servlet 必须在 Http Application 的

16、Web.xml 的配置文件中声明,因此在 Struts 中同样也在 Web.xml 中对 ActionServlet 进行了配置:action org.apache.struts.action.ActionServletconfig/WEB-INF/struts-config.xmldebug36detail30action*.doActionServlet 会匹配所有的以.do 结尾的请求,并读取配置文件里配置的Config 对应的 Struts 的配置文件中的 Action,从而将请求转交给对应的Action 调用相应的业务处理方法进行处理。2)Action当 ActionServlet

17、得到用户的请求后,将请求转发给 Action,然后由Action 调用相应的业务逻辑处理方法进行处理。3)ActionMapping当 Action 进行业务处理后会返回一个 ActionMapping 的对象,该对象包含了 Action 的请求对象,决定 Web Container 该返回个对象给用户。4)ActionForm当 ActionServlet 接收到用户的请求时,会根据 struts-config.xml 描述将数据封装到相应的 ActionForm 中,然后由 Action 根据 struts-config.xml的描述读取相应的 ActionForm 中的数据,进行处理,将

18、处理后的结果返回给用户。5)标签库Struts 提供了功能强大的标签库,只有充分使用这些标签才能最大限度发挥 Struts 的作用,真正实现 MVC 模式。有了这些标签库开发人员无需在 JSP 页面添加任何的 Java 脚本就可以实现非常复杂的逻辑处理,从而实现了开发人员的美工人员的工作的分离。减少了美工人员的难度。2.2.2 Struts 的工作过程7浏览器ActionServlet ActionJSP ActionFormStruts-config.xmlRequestResponseInvoke图 2-2Struts 的工作过程如图 2-2,当用户向 Web Server 发出请求时,W

19、eb Server 将请求转交给 ActionServlet,由 Servlet 决定调用哪些 Action,然后根据 Struts-config.xml 的配置对应相应的 Form 来读取数据,并调用相应的业务逻辑处理方法进行处理,然后将处理后的结果传递到 JSP 提供给用户。2.3 Struts 的国际化在过去,软件开发者在开发应用程序时,将注意力集中于实现具体的业务逻辑。软件面向的用户群是固定的,软件只需要支持一种语言,但是随着跨国业务的迅猛发展,需要同一软件能同时支持多种语言。对于一个已经开发好的软件如果要支持新的语言就要对软件进行国际化。国际化指的是在软件设计阶段就应该使软件具有支持

20、多种语言和地区的功能。这样,当需要在应用中添加对一种新的语言和国家的支持时,不需要对已有的软件进行重新编码。一个应用程序支持国际化应该具备以下特征:1)当应用程序需要支持一种新的语言时无需修改源码。2)应用程序中的文本及图片资源从代码中分离出来,存储在外部。3)根据用户的语言和地理位置进行正确的格式化。4)可以方便快捷地对应用做出调整,使它适应新的语言和地区。Struts 对国际化的支持体现在能够输出和用户 Locale 相符合的文本和图8片上。当 Struts 配置文件的元素的 Local 属性为 True 时,Struts 框架把用户的 Locale 实例保存在 Session 范围内,宁

21、产,Struts 框架能自动根据这一 Locale 实例来从 Resource Bundle 中选择合适的资源文件,当用户的 Locale 为英文时,Struts 框架就会向用户返回来自于Application_en.properties 文件的文本内容,当用户的 Locale 为中文时,Struts 框架就会向用户返回来自于 Application_ch_properties 文件的文本内容。第三章 Hibernate 框架介绍Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲地使用面向对象编程思维来操纵数据

22、库,Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序中使用,也可以在 Servlet/JSP 的 Web 应用中使用。Hibernate 的作用就是介于 Java 与 JDBC 之间的一个持久层,它通过建立与数据库表之间的映射来操纵数据库,Hibernate 是基于 JDBC 之上的。3.1 数据库操作的 3 个阶段1)JDBC 操作阶段在使用 Java 进行数据库开发的最初数据库开发的最初阶段,都是使用JDBC 类来操作数据库的:String sql = “select * from user where username=”+username+”

23、and password=”+password+”;TryClass.forName(“com.mysql.jdbc.Driver”).newInstance();Connection conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/OA”,”root”,”root”);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);While(rs.next()System.out.println(rs.getString(

24、1);9catch(Exception e)e.printStackTrace();finallyRs.close();Stmt.close();Conn.close();这一段操作代码很具有代表性,几乎所有的使用 JDBC 进行数据库操作的代码都需要开发如下过程的代码:定义查询或更新的 SQL 语句;加载数据库驱动程序;创建数据库连接;创建申明对象;执行查询或更新;关闭结果集对象,申明对象,数据连接对象。使用这种方法的缺点是:代码重用度小,数据库处理的代码过多,不能突出业务处理逻辑。2)封装 JDBC 的阶段为了改进 JDBC 操作的不足,我们可以将 JDBC 的不同操作封装成不同的函数。P

25、ublic Boolean createConn():加载驱动程序,创建连接对象Public Boolean update(String sql):执行更新操作Public void query(String sql):执行查询操作Public void closers():关闭结果集对象Public void closeStm():关闭申明对象Public void closeConn():关闭连接对象这样我们就可以直接调用这些函数来创建数据连接,这样就避免了以上不足,实现了对 JDBC 封装,并能够对 JDBC 事务进行管理。并且在这个基础上,10可以通过配置连接池来减少对数据库操作的时间

26、。3)ORM 阶段在对 JDBC 进行封装之后,能够方便地实现数据库的操作,但是,在面向对象的编程开发中,数据库的操作与普通的面向对象的 Java 代码不同,而 ORM 则是减少了这种区别。真正实现了数据库操作的对象化。3.2 ORM 对象关系映射ORM 是 Object Relational Mapping 的简称,即对象关系映射,它是一种为了解决面向对象与关系数据库存在的不匹配的技术,ORM 是通过使用描述对象和数据库之间映射的元数据,将 Java 程序中的对象自动持久化到关系数据库中,实际上就是将 Java 中的 Class 与数据库中的 Table 对应起来。关系图如图 3-1:编号U

27、serIDUsernamePassword用户实体用户名 密码UserPKUsernamePasswordIDER ORM图 3-1图中依次包含了数据实体的 3 种不同表示形式,即数据实体,数据表,映射对象。用户实体是数据库概念设计阶段的产物,表示在系统设计的最初阶段所抽象的基本数据对象,每一个数据实体都包含一些信息段。将数据实体映射为数据表,信息映射为数据表的字段,就形成了数据库中的可表示的对象数据表。数据表由表名和字段表示基本的信息。11映射对象是普通的 Java 类,它用 Java 类来代表数据实体,类名与表名对应,属性名与表的字段对应,ORM 就是数据表与映射对象之间的映射关系。3.3

28、 Hibernate 介绍及工作过程3.3.1 Hibernate 的组成Hibernate 是一个实现了 ORM 映射的开发框架,主要实现数据库表与 Class的映射。主要组成部分有:对应每个数据库表有一个对应的 hbm.xml 文件和持久化类以及对数据库进行操作的 DAO 类,Hibernate 有一个 Hibernate.cfg.xml文件,用来描述数据库的连接信息以及关联这些 hbm.xml 配置文件,在Hibernate 中利用一个 Factory 辅助类来获得与数据库之间的会话和面向用户的 Servers 层。1) Hibernate 配置文件Hibernate 的数据库连接信息是

29、从配置文件中加载的,这要增加了Hibernate 和数据库连接信息的灵活性,在配置文件中包含了一系列属性的配置,Hibernate 将根据这些属性来连接数据库。Hibernate 的配置文件有两种形式:一种是 XML 格式的文件,一种是Properties 属性文件。2)映射文件.hbm.xmlHibernate 映射文件包含了对象/关系映射(O/R Mapping)所需的元数据。元数据包含持久化类的声明和属性到数据库的映射(指向字段和其他实体的外键关联) 。映射文件是 XML 格式的文件,它负责持久化类与数据库表之间的映射。其根元素是 Hibernate-mapping,并通过属性 Pack

30、age 指定类所在的包。每一个表使用一个 Class 定义,Name 表示类的名称,Table 表示关联的表名,通过Property 子元素来映射类的变量名与数据库表字段名之间的映射。3)持久化类持久化类是指其实例需要被 Hibernate 持久化到数据库中的类。持久化类通常都是域模型中的实体或类,一般都是一张数据库表对应一个持久化类。但并不是所有的持久化类的实例都是持久化状态。Hibernate 使用简单的 Java 对象(Plain old java objects,就是12POJOS)这种编程模型来进行持久化,一个 POJO 很像一个 JavaBean,通过Getter 和 Setter

31、 方法访问其属性,对外则隐藏了其内部实现的细节。4)辅助类:HibernateSessionFactryHibernate 的 Session 是一个持久化管理器,我们通过它来从数据库中存取数据,我们需要通过 SessionFactory 获取一个 Session:SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();通过对 Configure()的调用来装载 Hibernate.cfg.xml 配置文件,并初始化成一个 Configuration 实例,然后通过这个实例来获得

32、 Session 的一个生成器。通过 Session 我们就可以进行和数据库之间的会话。5)DAO 类:DAO 类存在于 Project 的 DAO 层,就是数据访问接口,为了基于 Hibernate的开发中,通常将业务层与数据层分开,DAO 层只负责调用 Hibernate API 实现对数据库的操作,Servers 层面向用户负责调用 DAO 层的代码,这样数据层的代码不用关心业务服务,可以更好的实现移植。6)Servers 层:Servers 层即服务层,就是面向用户服务,它定义的方法都是与实际的业务相关的,通过调用 DAO 层的方法来实现与数据库的交互。3.3.2 Hibernate

33、的工作过程当需要与数据库进行的交互时,用户将需要处理的数据封装到数据持久化类,但这是这个类并没有被持久化,通过 Hibernate 的 Transction 接口开启事务处理过程,将含有数据的类持久化,即与数据库中的数据建立映射关系,然后通过 Transction 的 Commit 方法将持久化类中的数据与数据库中的数据进行同步,然后关闭会话 Session,此时,实例化对象的状态由持久转变为脱管,Hibernate 的工作过程如图 3-2:13DatabaseApplicationHibernatePersistent ObjectHibernate.cfg.xml .hbm.xmlDAO图

34、 3-2第四章 系统功能的实现及部署4.1 系统概述随着信息网络技术的应用,目前许多政府部门、企事业单位已建立局域网络,并直接与 internet 相连接。为了充分发挥网络的作用,提高办公处理效率,建设办公自动化管理系统已经是迫切需要。本系统采用动态 WEB 构建技术,使得系统客户端无须维护,适应性强,使用与企事业、政府机关等单位网络环境使用。企业办公自动化系统是企业管理系统的一部分,企业内部办公网络的内容很多,如公司内部公告信息的发布,文件的管理,员工内部交流信息的发布和共享,个人日程及工作日志的安排,出勤登记。随着信息技术的不断发展以及互联网技术的日益成熟,使远程办公成为可能。你无论身处何

35、地,只要有上网条件就可以利用网上办公系统,及时有效地对各种文件、报告进行处理,同时也将彻底摆脱桌面上沉沉繁杂的纸张文件,使得繁重的工作变得轻松自如,极大地提高工作效率。4.2 系统分析4.2.1 需求分析14通过对所在公司的相关调查,要求系统具有以下功能: 个人通讯录的管理及查询 会议通知及管理 公告发布及管理 个人日程的安排及管理 个人工作日志的管理 公司内部员工短信息的发送及管理 文件的上传和下载4.2.2 可行性分析通过办公自动化管理系统对企业日常办公进行管理,满足了企业日常办公管理各方面的的需求,实现了企业员工之间消息的发送与接收功能,大大的方便了企业内部人员沟通,文件的共享功能实现使

36、公司内部员工之间的可以方便的进行文件的共享。网站提供的前后台的公告与公文信息的管理方便员工及时的了解公司的动态。另外本系统具有自动记录员工出勤情况的功能,使得公司对员工出勤情况的管理更加方便。4.3 系统设计4.3.1 总体设计系统的工作流程如图 4-1:员工登录已出勤登记个人通信录工作日志会议安排公司公告 日程安排出勤登记文件管理NY图 4-1154.3.2 详细设计1. 注册:新用户要使用此系统必须进行注册,系统会检查用户选择的用户名是否已经被使用,若被使用则提示用户更换用户名。2. 登录:用户要进入系统必须进行登录,系统检查用户名和密码是否正确,若正确则成功进入系统,否则提示错误信息。3

37、. 出勤登记:用户登录成功时系统同时会检查此用户当天是否已经进行出勤登记,若已经进行出勤登录则进入系统首页,否则提示用户进行出勤登记。4.公告信息:系统将显示当前所有的公告信息,用户可以选择查看公告信息进行查看,用户也可以添加公告信息,并且可以删除公告信息,删除时系统会进行检查,若此公告是当前用户添加的则可以删除,否则提示错误信息,并不能进行删除。5.会议通知:登录用户可以看到所有的会议通知信息,并可以有选择的进行查看,用户可以添加会议信息,并且可以删除,删除时系统会检查信息的发布者,若为当前用户则删除成功,否则提示错误信息,并不能够删除。6.个人通信录:用户可以利用此系统进行个人通信录的管理

38、,包括添加、查看、查询、修改和删除。7.公司内部信息:用户可以给公司内部其他用户发送信息,并可对收件箱和发件箱进行管理。8.工作日志:用户通过系统对个人工作日志进行查看,添加、删除修改。9.日程安排:查看个人日志安排,并进行添加、修改和删除。10.出勤记录查看:用户可以查看所有员工的出勤记录。11.文件管理:用户可以上传文件,或者有选择的进行下载。12.数据库设计:通迅录表 address 如图 4-2:16图 4-2会议表 meeting 如图 4-3:图 4-3公告表 notice 如图 4-4:图 4-4出勤表 record 如图 4-5:17图 4-5工作日志表 worklog 如图

39、4-6:图 4-6日程安排表 schedule 如图 4-7:图 4-7信息表 sms 如图 4-8:18图 4-8用户表 user 如图 4-9:图 4-94.3.3 确定并搭建开发环境,并对开发环境进行测试1. 开发语言:Java,Jsp2. 框架:Struts1.2,Hibernate3.0,SiteMesh3. 系统环境:Windows xp SP2,CPU1.73GHz,Memory:1G。4. 开发环境:MyEclipse6.0,Server:Apache 的Tomcat5.0,JDK:JDK1.5,Database:Mysql5.0,Database Client:Navicat

40、 for Mysql。5.安装开发环境,并编写一个 OA 的模型对开发环境进行测试。4.3.4 系统实现下面能过通迅录功能的实现来说明 Struts 和 Hibernate 的整合过程,并以此来说明整个系统的实现过程。4.3.4.1 Hibernate 的实现1.建立 Address 表的持久化类 Address.java,类中的属性与 Address 表中19的字段相对应,并为之添加相应的 Getter 和 Setter 方法:private Integer id;/定义与Address表中字段对应的属性(主键)private String username;/定义用户名public Int

41、eger getId() /添加Getter方法return this.id;public void setId(Integer id) /添加Setter方法this.id = id;public void getUsername()return username;public void setUsername(String username)this.username = username;2. 建立与 Address 表与持久化类的描述文件 Address.hbm.xml:203建立对应的 DAO 类 AddressDAO:public class AddressDAO extends

42、HibernateBaseDAO public static final String USERNAME = “username“;/插入记录public void save(Address transientInstance) Session session =null;Transaction tx =null;/System.out.println(transientInstance.getName();try session = getSession();tx = session.beginTransaction();session.save(transientInstance);mit

43、(); catch (Exception re) tx.rollback();re.printStackTrace();finallysession.close();/根据指定ID删除记录public void delete(Integer id) Session session = null;Transaction tx = null;try 21session = getSession();tx = session.beginTransaction();/取得对应的ID的记录Address persistentInstance = (Address) session.get(Address

44、.class, id);/删除记录session.delete(persistentInstance);提交事务以提交操作mit(); catch (RuntimeException re) /操作失败事务回滚tx.rollback();/更新记录public void update(Address addr)System.out.println(“this is in “+this.getClass().getName();Session session = null;Transaction tx = null;trysession = getSession();/创建会话tx = sess

45、ion.beginTransaction();/开始事务处理Address ins = (Address)session.get(Address.class, addr.getId();/持久化类ins.setUsername(addr.getUsername();session.flush();/强制更新记录数据库mit();/提交事务catch(Exception e)22tx.rollback();/异常回滚e.printStackTrace();finallysession.close();/关闭会话/按用户名查询public List findByUsername(Address a

46、ddr) Session session = null;Transaction tx = null;List list = null;try session = getSession();tx = session.beginTransaction();/定义SQL语句String queryString = “from Address as model where model.“+ USERNAME + “= ?“;Query queryObject = session.createQuery(queryString);queryObject.setString(0,addr.getUsern

47、ame() );/取得所要取得的对应的记录queryObject.setFirstResult(Pageinfo.startResult);queryObject.setMaxResults(Pageinfo.pageSize);/取得记录列表list = queryObject.list();/提交事务mit(); catch (RuntimeException re) 23/事务回滚tx.rollback();throw re;finallysession.close();return list;4.将持久化的描述文件添加到 Hibernate 的配置文件hibernate.cfg.xml

48、 中:rootjdbc:mysql:/127.0.0.1:3306/oa?useUnicode=truecharacterEncoding=utf8org.hibernate.dialect.MySQLDialectrootcom.mysql.jdbc.Driver244.3.4.2 Struts 的实现1.建立对应的 JSP 页面,并建立对应的中文(ApplicationResources_zh_CN.properties)和英语(ApplicationResources_en.US.properties)国际化消息资源配置文件,以对页面进行国际化。.中文页面如图 4-10:图 4-10英文

49、页面如图 4-11:25图 4-112. 建立对应的 FormBean:public class AddressForm extends ActionForm /建立 JSP 页面 Form 中对应字段的属性private String name;/建立表单验证函数public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) return null;/创建对应的 Getter 和 Setter 方法public String getSex() return sex;public String getName() return name;26public void setName(String name) this.name = name;3建立对应 FormBean 的 Action:public class AddAddressAction extends Action public ActionForward ex

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报