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