收藏 分销(赏)

大型软件项目实训报告.doc

上传人:精**** 文档编号:9865077 上传时间:2025-04-11 格式:DOC 页数:34 大小:3.98MB
下载 相关 举报
大型软件项目实训报告.doc_第1页
第1页 / 共34页
大型软件项目实训报告.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述
大型软件项目实训报告 31 2020年5月29日 文档仅供参考 大型软件项目实训报告 教学单位 专 业 班 级 学生姓名 学 号 指导教师 目 录 1 实训目的 1 2 实训时间和地点 1 3 实训单位简介 1 4 实训内容 2 4.1实训期间完成的学习任务 2 4.1.1 Oracle数据库 2 4.1.2 软件测试 3 4.1.3 Java课程 4 4.1.4 职场交际与沟通 7 4.1.5 面试技巧 7 4.1.6 SSH框架 8 4.2 实训期间完成的实践项目 10 4.2.1 项目简介 10 4.2.2 需求分析 10 4.2.3 总体设计 11 4.2.4 详细设计 13 4.2.5 编码 15 4.2.6测试用例 27 5 实训收获与体会 29 6 致谢 29 1 实训目的 针对具体软件工程项目,全面掌握软件工程管理,软件需求,软件总体设计,软件详细设计,软件测试等阶段的方法和技术。经过该实训项目,使我们进一步理解和掌握软件开发模型,软件生命周期,软件过程等理论在软件项目开发过程中的意义和作用。培养我们按照软件工程的原理,方法,技术,标准和规范进行软件开发的能力,对技术文档的编写能力,从而提高我们的软件工程的综合能力,提高软件项目的管理能力。 2 实训时间和地点 1.实训时间: 11月1月~ 1月6日 2.实训地点:沈阳东软实训中心 3 实训单位简介 东软是中国最大的IT解决方案与服务提供商,1991年,东软创立于中国东北大学,当前,公司拥有员工217000余名,在中国建立了6个软件研发基地,8个区域总部,在40多个城市建立营销与服务网络,在大连,南海,成都和沈阳分别建立3所东软信息学院和1所生物医学与信息工程学院,在沈阳,大连,南京,成都和无锡等13地建立了分布式实训基地,在美国,日本,欧洲,中东设有子公司。东软以软件技术为核心,经过软件与服务的结合,软件与制造的结合,技术与行业管理能力的结合,提供行业解决方案以及相关软件产品,平台与服务。在软件与服务方面,东软在国内市场定位于为社会基础设施和企业信息化提供全面解决方案和服务的公司。东软的软件和解决方案包括:各种软件与中间件产品、行业解决方案及实施、咨询与服务。在软件产品方面,东软的网络安全产品,人力资源管理系统保持市场占有率第一的地位;在行业解决方案方面,东软为中国的电信、电力、社保、教育、税务、金融、证券、交通、烟草、广电、医疗、电子政务、企业管理等行业提供解决方案,其中在电信、电力、社保、烟草、税务、企业、电子政务保持市场领先的地位。 同时,东软在国际合作和服务外包方面取得了长足的发展,业务覆盖汽车电子、手机、数字电视、DVD、金融、证券、ERP等嵌入式和应用软件领域,能够为客户提供软件开发,联合研发,软件测试与系统维护,实施与咨询,IT技术支持以及业务流程外包等服务。 沈阳东软实训基地依托东软沈阳软件园,是当前中国规模最大的集大学生实训和软件人才培训为一体的人才培训基地,可容纳5000多人同时进行培训,每年可为10000多名大学生和软件人才提供实训。教室内配备有中央空调,饮水机,投影仪,白板,麦克及音箱。关于实训中心的计算机配置如下:intel PD925(3.0/800/2*2MB)/963芯片/单条1G(ddr2 667)/80G SATA3.0Gb/s/1000M卡/无光驱/无软驱/17寸显示屏/USB键盘/USB光电鼠标。 4 实训内容 4.1实训期间完成的学习任务 在东软实训中心,我们学习了很多知识。主要课程有以下几种:oracle数据库,java基础,软件测试,标准日本语初级(下),IT日语,面试与沟通技巧,职场交际,素质拓展训练以及SSH集成框架等。 4.1.1 Oracle数据库 (1) 数据查询语言SQL:所谓SQL语言,它能够在oracle数据库中创立,存储,更新,检索和维护数据,其主要功能就是实现数据的查询和数据的插入,删除,修改等操作。它在书写上类似于英文,简洁清晰,易于理解。SQL语言能够分为四类:数据库控制语言(控制对数据库的访问,启动和关闭等),数据库定义语言(用来创立,删除及修改数据对象),数据库操纵语言(用来操纵数据库的内容,包括查询),数据库事务处理(实现对数据的交易过程的完整控制)。 (2) 数据操作:数据库操作语句则包含以下内容,insert插入新行,update修改更新已存在的行,delete删除表中已存在的行;数据库事务,事务是由相关操作构成的一个完整的操作单元。两次连续成功的commit或rollback之间的操作,称为一个事务,以及表的锁定,锁用来保证数据的一致性,当多个会话同时修改一个表时,需要对数据进行相应的锁定。 (3) 游标:游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。它主要就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样会提高数据处理的速度,反之频繁的磁盘数据交换会降低效率。 (4) 存储过程和函数:存储过程和函数也是PL/SQL块,是存入数据库的PL/SQL块。它们以命名的数据库对象形式存储于数据库中,可是因为代码不保存在本地,用户能够在任何客户机上登录到数据库,并调用或修改代码。 (5) 触发器:触发器必须由事件才能触发。触发器的触发事件分可为3类,分别是DML事件、DDL事件和数据库事件。每类事件包含若干个事件,数据库的事件是具体的,在创立触发器时要指明触发的事件。 4.1.2 软件测试 (1) 什么是软件测试? 软件测试是指经过人工或自动手段运行或测试某个系统功能,验证软件是否能达成期望功能,贯穿软件生产过程的始终的一套完整的质量体系。 (2) 软件测试的目的是什么? 证明软件能够正确完成其预定的功能。它是为了发现错误而执行的过程,证 明程序有错而不是程序无错误。一个好的测试是第一时间发现程序中存在的错误,发现至今尚未发现的错误。 (3)软件测试的原则 所谓软件测试的原则,是指尽早并不断的进行测试,避免测试自己设计的程序,合法的输入数据,非法输入数据,程序修改之后进行回归测试,注意测试中群集现象,设计合理测试用例,对测试结构进行检查,严格执行测试计划,排除测试的随意性,保留测试计划,全部测试用例,出错统计,最终分析报告。 (4)关于软件测试与软件质量保证的区别 在性质方面,软件测试是技术性工作,而软件质量保证是管理性工作。 在对象方面,软件测试的对象是软件产品,而软件质量保证的对象是整个软件过程,覆盖公司各个领域。 在手段方面,软件测试以事后检验为主,而软件质量保证强调缺陷的预防。 (5)软件工程师的素质 要想成为一名合格的软件测试工程师,首先在技术方面,应该掌握如下能力:编程语言,数据库理论,计算机网络技术,软件工程,数据结构,计算机原理,软件测试基础,软件测试设计,软件测试工具,软件质量管理,以及外语。其次,一名合格的软件测试工程师,应该具有一定的编程经验,较强的沟通能力,严谨,敢于承担,稳重的做事风格,具有怀疑和破坏精神,善于自我总结,自我督促。最后,软件测试工程师应该有耐心和细心,而且注重团队合作。 4.1.3 Java课程 (1) Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者经过其实现商业逻辑,同时用户请求经过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们能够快速建立应用系统的界面。控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,另外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。 (3) Spring Spring是轻量级的J2EE应用程序框架。其核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此能够独立,也能够使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多能够改进的地方,但它不强迫您使用它提供的方案,您能够选用您所希望的框架来取代其子框架,例如您仍能够在Spring中整合您的Struts框架 。Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模组不应该依赖低层模组,而是模组都必须依赖于抽象」是 IoC的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其它的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可经过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring能经过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。Spring被设计为让使用它创立的应用尽可能少的依赖于她的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。使用Spring构建的应用程序易于单元测试。Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不经过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。Spring确实使你能经过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。Spring没有直接和其它的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,而且感到在MVC web framework中还有改进的余地。在某些领域,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,可是在这些领域还没有已经较为流行的解决方案。 Spring也得益于内在的一致性。所有的开发者都在唱同样的的赞歌,基础想法依然是Expert One-on-One J2EE设计与开发的那些。而且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。 (4) Hibernate Hibernate是一个开放源代码的对象映射框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员能够随心所欲的使用对象编程思维来操纵数据库。Hibernate能够应用在任何使用JDBC的场合,既能够在java的客户端程序使用,也能够在servlet/jsp的web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 Hibernate为面向对象的领域模型到传统的关系模型数据库的映射,提供了一个 使用方便的框架。同时,它也是当前java开发中最为流行的数据库持久层框架。Hibernate不但负责从java类到数据库表的映射,还提供了面向对象的数据查询检索机制,从而极大的缩短的手动处理SQL和JDBC上的开发时间。 Hibernate的核心接口一共有六个,分别为:Session,SessionFactory,Transaction,Query,Criteria,Configuration。这六个核心接口在任何开发中都会用到。经过这些接口,不但能够对持久化对象进行存取,还能够进行事务控制。 (4) MVC MVC是模型(model),视图(view),控制器(controller)的缩写,它是一种软件设计的典范,用于组织代码用一种业务逻辑和数据显示分离的方法。它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分成三个核心部件,模型,视图和控制器。它们各自处理自己的任务。 视图:视图是用户看到并与之交互的界面,MVC好处是它能为应用程序处理很多不同的视图,在视图中,其实没有真正的处理发生,不论这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 模型:模型表示企业数据和业务规则,在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJB这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用模式的代码只需写一次就能够被多个视图重用,因此减少了代码的重复性。 控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求,因此当单击web页面中的超链接和发送html表单时,控制器本身不输出任何东西和做任何处理,它只是接受请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。 (5) Ajax Ajax是一种客户端方法,能够与J2EE,.NET,PHP等脚本交互,它是Asynchronous,javascript,XML的缩写。使用ajax时经常会出现以下问题:不同于Iframe和隐藏框架,经过XHR作出请求不会修改浏览器的历史记载,但如果使用后退按钮,就会出现问题;ajax不会修改地址栏中显示的链接;使用ajax不要过度,javascript会在客户端的浏览器上运行,如果有数千行javascript代码,可能会让用户觉得速度太慢;ajax允许异步完成操作。那么,如何使用ajax,有以下步骤:首先,一个客户端事件触发一个ajax事件,接着,向服务器作出请求,可能调用servlet,CGI脚本或任何服务器端技术,服务器能够做你想做的事,包括访问DB,甚至访问另一个系统。然后,请求返回到浏览器,最后,调用callback函数。 4.1.4 职场交际与沟通 沟通的功能从管理的角度看主要有控制、协调、激励、交流等作用。有效沟通不但仅能传递意义,还对其加以理解并让各方达到共识。在企业的实际经营管理中,有效的沟通所起的作用是显而易见的。无论是企业管理者还是普通的职工,都是企业竞争力的核心要素,做好沟通工作,无疑是企业各项工作顺利进行的前提。有效沟通在企业管理中的重要性主要表现在: 准确理解公司决策,提高工作效率,化解管理矛盾。公司决策需要一个有效的沟经过程才能施行,沟通的过程就是对决策的理解传达的过程。决策表示得准确、清晰、简洁是进行有效沟通的前提,而对决策的正确理解是实施有效沟通的目的。在决策下达时,决策者要和执行者进行必要的沟通,以对决策达成共识,使执行者准确无误的按照决策执行,避免因为对决策的曲解而造成的执行失误。 4.1.5 面试技巧 (1) 基本注意事项 在面试过程中,我们应该做到谦虚谨慎,求职者在回答一些比较有深度的问题时,切记不可不懂装懂,不明白的地方要虚心请教或坦白说不懂,这样才会给用人单位留下诚实的好印象;另外,在面试时,我们要做到随机应变,当求职者一人面对众多考官时,心理压力很大,面试的成败大多取决于求职者是否能够机制果断,随机应变,能当场把自己的各种聪明才智发挥出来;同时,我们在面试的过程中,要学会扬长避短,每个人都有自己的特长和不足,无论在性格上还是在专业上都是如此,因此在面试时,一定要注意扬我所长,避我所短。必要时可宛转的说明自己的长处和不足,用其它方法加以弥补; (2) 面试时如何消除紧张感? 首先,要保持一颗”平常心”,在竞争面前,人人都会紧张,这是一个普遍的规律。其常见的方法是或大声的讲话,把面正确考官当熟人对待,或掌握讲话的节奏,慢慢道来; 其次,不要把成败看的太重,胜败乃兵家常事,要时刻这样提醒自己,如果这次不成,还有下一次机会;第三,不要把考官看的过于神秘,并非所有的考官都是经验丰富的专业人才,可能在陌生人面前也会紧张,认识到这一点就用不着对考官过于畏惧,精神也会自然放松下来。然而,重要的还是要准备充分。实践证明,面试时准备的越充分,紧张程度就越小,考官提出的问题你都会,就不会紧张了;最后,要增强自信心。 (3) 面试时应注意的礼仪 首先,注意服饰要得体,即服饰与自己的身材,身份相符,表现出朴实,大方,明快,稳健的风格,而且,要与自己应聘的职业相协调,能体现自己的个性和职业特点。一般说来,服饰要给人以整洁,大方得体的感觉,穿着应以保守,庄重一点为好,不要追求时尚,浓妆艳抹。 其次,遵守时间。面试时,千万不能迟到,而且最好能够提前十分钟到达面试地点,以有充分的时间调整自己紧张的情绪,也表示求职的诚意。假如依照约定的时间匆匆前往,对方可能已经在等你,那样就显得你欠礼貌,欠诚意,同时还容易使你情绪紧张而影响面试效果。 第三,表情要自然,动作要得体,进门时,不要紧张,表情越自然越好,在对方没有请你坐下时切勿急于坐下,请你坐下时,应说声谢谢,坐下后要保持良好的坐姿。对于女生来讲,动作更应该得当,任何轻浮的表情或动作都可能会让招聘人员对你不满,另外各种手势也要恰当得体,自然。 第四,要讲究文明礼貌,进门时应主动打招呼,如果是对方主动约4自己面谈,一定要感谢对方给自己这样一个机会,如果是自己约对方面谈,一定要表示歉意。面谈时,决不能东张西望,心不在焉,不要不停的看手表,否则,显得对对方不尊重。 最后,是一个听的学问,要有耐心,对对方提起的任何话题,都应该耐心倾听,不能表现出心不在焉,或不耐烦的神色,要尽量让对方兴致勃勃的讲完,不要轻易打断或插话,,同时要细心,具备足够的敏感性,善于理解对方的弦外之音。 4.1.6 SSH框架 (4) 什么是SSH? SSH 为 struts+spring+hibernate的一个集成框架,是当前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。 系统的基本业务流程是: 在表示层中,首先经过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。 采用上述开发模型,不但实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,而且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。 (2)框架搭建步骤 首先,添加myeclipse数据源; 接着,添加hibernate框架(配置log4j); 第三,添加spring框架; 第四,添加struts2框架; 第五,处理冲突的jar包; 第六 ,配置web.xml,启动spring框架; 第七,配置spring的 公共部分(即事务管理); 第八,配置web.xml,启动hibernate框架; 最后,定义乱码过滤器com.ehr.util.EncodingFilter。 4.2 实训期间完成的实践项目 4.2.1 项目简介 项目名称:人事管理系统 项目说明:人事管理系统,用于描述最终用户关于人事管理方面的业务流程,它主要具有以下功能:对员工的基本信息进行管理,另外,它还将提供员工信息更改或删除等的功能,使公司的人事管理方便快捷而又清晰。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效地程序结构支持各种数据操作的执行。 本人职责:员工离职信息管理,主要实现离职员工信息的查询,修改和删除操作,而且能够添加即将离职员工的信息。 4.2.2 需求分析 (1)总体目标 随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件; 人事管理系统是各个系统的重要组成部分,是所有业务系统中数据量最大、业务管理内容最多,建设工期最长、实时性最强的业务子系统,它包含很多的功能模块,如员工管理、部门管理、岗位管理、离职管理、试用期管理、调动管理等业务系统。对于系统执行的重要操作自动记录操作人和操作日期。操作人默认为当前登录人员。操作日期默认为当天。集中数据管理、分布式应用,实现信息的全面共享,为决策者提供最新的人力资源数据。 图1 系统数据流程图 4.2.3 总体设计 (1) 系统分析 用户进入人事管理系统前,需要经过系统的权限验证,如登录用户不具备该系统的操作权限,提示越权信息,禁止进入该系统。当用户进入系统后,共有5个模块能够使用,分别为:查询部门管理模块、查询岗位管理模块、员工信息管理模块和部门岗位调动管理,还有员工离职模块。如果用户要退出人事管理系统,单击”退出系统”按钮即可。 员工离职管理 结 束 开 始 部门管理 岗位管理 员工入职管理 员工试用期管理 员工部门调动 员工异动管理 员工信息中心 员工岗位调动 图3 系统流程图 (2) 模块设计 本系统中的员工离职信息管理模块中,实现已经离职员工信息的查询,编辑,删除等操作,对于即将离职的员工,可进行添加离职员工信息处理。 (3) 功能说明 在员工离职信息管理模块中,对于已经离职的员工,可对相关员工的离职信息进行查询,删除和修改操作,若有其它员工选择离职,则可进行添加操作。 (1) 关系模式 离职员工信息(离职编号、员工姓名、部门名称、岗位名称、离职日期、离职类型、离职去向、是否加入人才库、备注) N 部门 N 部门名 管理 管理 姓名 编号 N N 管理 离职员工 N N 岗位 离职类型 离职去向 岗位名 图4 E--R图 4.2.4 详细设计 该阶段主要是确定目标系统应该怎样具体的实现所要求的系统,得出对目标系统的精确描述,从而在编码阶段能够把这个描述直接翻译成某种程序设计语言书写的程序。 开始 离职信息管理 新建离职信息 编辑离职信息 删除离职信息 查询离职信息 结束 图5 模块流程图 (2) 数据库的详细设计 设计数据库系统时首先应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需求分析,数据库概念设计,数据库逻辑设计,数据库物理设计 表1 离职员工信息表 列名称 数据类型 长度 是否为空 说明 id int 10 N 离职编号 depName varchar 50 N 部门名称 empName varchar 50 N 员工姓名 postName varchar 50 N 岗位名称 dimissionDate date 10 N 离职日期 dimissionType char 50 N 离职类型 isEntryLiberary string 10 N 是否进入人才库 dimissionDestination varchar 50 N 离职去向 dimissionRemark varchar 50 Y 备注 (3) 模块流程图 开始 离职员工信息管理 添加信息 添加离职信息 修改离职信息 修改信息 删除信息 删除离职信息 离职信息 结束 图6 模块流程图 4.2.5 编码 对象的调用流程是: jsp-> Action-> Service ->DAO ->Hibernate 。 数据的流向是ActionFormBean 接受用户的数据,Action 将数据从 ActionFromBean 中取出,封装成 VO 或 PO,再调用业务层的 Bean 类,完成各种业务处理后再 forward 。而业务层 Bean 收到这个 PO 对象之后,会调用 DAO 接口方法,进行持久化操作。 (1)实体类编写 public class Dimission { long dimissionId; Employees employees; //离职员工编号 Departments departments; //离职部门 Posts posts; //离职岗位 String dimissionDate; //离职日期 Code dimissionType; //离职类型 String dimissionDestination; //离职去向 Code isEntryLiberary; //是否加入到数据库 String dimissionRemark; //离职备注 } (2)实体类属性配置 <hibernate-mapping package="com.ehr.entity"> <class name="Dimission" table="dimission"> <id name="dimissionId"> <column name="dimissionId" sql-type="number(4)" not-null="true" /> <generator class="native" /></id> <many-to-one name="employees" class="Employees" column="eId" > </many-to-one> <many-to-one name="departments" class="Departments" column="dId"> </many-to-one> <many-to-one name="posts" class="Posts" column="pId"></many-to-one> <property name="dimissionDate"> <column name="dimissionDate" sql-type="varchar2(50)" ></column> </property> <property name="dimissionDestination"> <column name="dimissionDestination" sql-type="varchar2(20)" not-null="true"></column> </property> <property name="dimissionRemark"> <column name="dimissionRemark" sql-type="varchar2(300)"></column> </property> <many-to-one name="dimissionType" class="Code" column="dimissionType"> </many-to-one> <many-to-one name="isEntryLiberary" class="Code" column="isEntryLiberary"> </many-to-one> </class> </hibernate-mapping> (3)业务逻辑层IDimissionBiz,在该接口中,主要封装了数据的增删改查的方法。 public interface IDimissionBiz { Serializable addDimission(Dimission dimission); void modifyDimission(Dimission dimission); void deleteDimission(Serializable dimissionId); void deleteDimission(Dimission dimission); Dimission findById(Serializable dimissionId); List<DimissionVo> findAll(); } (4)业务逻辑层DimissionBiz,在该类中,主要封装了一些方法,同时详细编写了findAll()。 public class DimissionBiz implements IDimissionBiz { IDimissionDao dimissionDao;//重要 public IDimissionDao getDimissionDao() { return dimissionDao; } public void setDimissionDao(IDimissionDao dimissionDao) { this.dimissionDao = dimissionDao; } public Serializable addDimission(Dimission dimission) { return dimissionDao.addDimission(dimission); } public void deleteDimission(Serializable dimissionId) { dimissionDao.deleteDimission(dimissionId); } public void deleteDimission(Dimission dimission) { dimissionDao.deleteDimission(dimission); } public List<DimissionVo> findAll() { System.out.println("DimissionBiz.findAll()"); List<com.ehr.entity.Dimission> ldds=dimissionDao.findAll(); List<com.ehr.entity.vo.DimissionVo>lpsvoList=new ArrayList<com.ehr.entity.vo.DimissionVo>(); for(com.ehr.entity.Dimission dimission:ldds){ com.ehr.entity.vo.DimissionVo dimission2= new com.ehr.entity.vo.DimissionVo(); dimission2.setDimissionId(dimission.getDimissionId()); EmployeesVo e=new EmployeesVo(); e.seteId(dimission.getEmployees().geteId()); e.setEmpName(dimission.getEmployees().getEmpName()); dimission2.setEmployees(e); DepartmentsVo d=new DepartmentsVo(); d.setdId(dimission.getDepartments().getdId()); d.setDepName(dimission.getDepartments().getDepName()); dimission2.setDepartments(d); PostsVo p =new PostsVo(); p.setpId(dimission.getPo
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服