




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)报告 学生毕业设计(论文)报告系别:专业:班号:学生姓名:学生学号:企业财务信息管理系统指导教师:设计地点:起迄日期:毕业设计(论文)任务书专业班级姓名一、课题名称:企业财务信息管理系统二、主要技术指标(或基本要求):1.配合财务信息管理人员进行对公司所有财务信息的管理,以避免财务信 息流失,从而可以控制投资规模,引导投资方向,调整投资结构,最终使 财 务信息的行政业务处理过程达到管理规范的效果。2.开发环境:MyEclipse10,数据库Mysql。3.技术要求:系统为B/S架构,基于Struts2、Hibernate框架,JQuery 技术的应用,运用于前后台之间的操作;配置数据库连接池进行对数据库 进行访问、操作。工作内容和要求:1.设计需求分析,系统结构功能,设计需求的业务流程;系统设计,制定 计划,数据库架构,详细设计。2.基本信息模块:实现对系统一些基本信息的增加、删除、修改功能。3.业务处理模块:实现财务采购、财务入库、财务发放、财务维修等功能。4.统计报表模块:实现数据的查询、统计功能。5.部门管理模块:实现部门申购及查看本部门财务信息列表的功能。6.流程管理模块:实现行政逐级分化功能。7.管理员管理模块:实现对用户信息的操作及权限设置等功能。四、主要参考文献:[1]JSP编程实践一动态网页的引擎》[M]清华大学出版社2002年9月[2]《Java编程思想》[M]第4版.机械工业出版社北京2005年5月[3]《JSP编程指南》[M]北京电子工业出版社北京2001年4月[4]《Eclipse从入门到精通》[M].北京:清华大学出版社.2005年4月学生(签名)年月日指导教师(签名)年月日教研室主任(签名)年月日系主任(签名)年月日毕业设计开题报告设计(论文)题目企业财务信息管理系统一、选题的背景和意义:随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利,在一家企业,财务信息管理系统亦是如。以往,企业的财务信息管理员由于缺乏适当的软件而给其工作带来了很多不便。本论文所介绍的便是一套为企业服务的的财务信息管理系统,以方便更好的完成在企业内部财务信息安排和财务信息管理上的繁杂的工作任务。目前,企业的发展已逐渐步入正规,迫切需要一套先进的财务信息管理系统来配合财务信息管理人员进行对公司所有财务信息的管理,以避免财务信息流失,从而可以控制投资规模,引导投资方向,调整投资结构,最终使财务信息的行政业务处理过程达到管理规范的效果。本次毕业设计的题目是《财务信息管理系统》。Internet/Internet应用的普及和Web技术的发展,为Web下的信息管理系统提供了一个理想的平台,而基于Web的财务信息管理系统的开发为异地办公及跨企业的合作提供了良好的基础,采用Web技术已成为信息管理系统的主要特征。二、课题研究的主要内容:一、本管理系统主要实现的功能如下:基本信息模块:实现对系统一些基本信息的增加、删除、修改功能。业务处理模块:实现财务支出、财务收入、财务统计、信息查询等功能。统计报表模块:实现数据的查询、统计功能。部门管理模块:实现查看本部门财务信息列表的功能。流程管理模块:实现行政逐级分化功能。管理员管理模块:实现对用户信息的操作及权限设置等功能。《财务信息管理系统》的上线具有以下特点:1.规范的财务信息变动业务管理流程。2.全面的行政审查流程控制。3.开发的操作接口,满足所有员工的管理需求。4.专业的业务报表功能。5.详细的历史数据记录。6.严格的用户操作和权限设置。三、财务管理系统在实施后达到的目标:1.计算机信息化管理。2.操作简单易行,查询灵活方便。3.系统分级管理。4.系统架构清晰,功能全面,数据存储安全可靠。三、主要研究(设计)方法论述:首先,通过调查文献来获得资料,以及从互联网上查询系统中使用到的相关材料,从而全面地、正确地了解掌握所要研究和分析此手机销售系统中可能用到的开发技术,结构框架以及使用方法,并完成课题前期调研工作。其次,对手机销售系统的可行性进行的分析,然后确定系统设计目标,并明确整个系统结构规划,并完成系统各个模块的设计与开发,但是系统的功能要切合实际情况。最后,对系统主要页面、数据库、应用程序的设计与实现作详细讲解。四、设计(论文)进度安排:时间(迄止日期)工作内容07.01~07.02联系指导老师、确定选题07.02~07.02毕业设计任务书07.03~07.04完成开题报告07.04~07.04收集资料,修改开题报告07.04~07.05毕业设计论文撰写07.05~07.07毕业设计的部分编码07.08~07.10毕业设计报告初稿的编写07.11~07.28毕业设计论文、全部编码以及项目测试五、指导教师意见:指导教师签名:年月日六、系部意见:系主任签名:年月日目录TOC\o"1-3"\h\u13292摘要 第一章绪论1.1系统开发背景随着企业业务的扩大和增加,企业的信息管理变得越来越复杂,用传统的管理方法很容易造成不必要的错误,由此给企业带来很大的损失。因此实现财务管理的自动化是很有必要的。财务管理系统的开发不仅可以减少员工的工作量,还可以为企业节约许多人力和物力,使企业管理向高效化、规范化的方向发展,提高企业的运转效率,促进企业的发展。对外来说,一个健全的财务管理系统能够为企业未来的发展起到评估的作用,能够让企业在资金的运转和账目的结算上有着更为准确的判断,从而帮助企业减少开支,提升效率。对内来说,能够高效地结算企业内部账目,增强企业内部的信息流通性,提高员工的工作效率。目前,我国受传统计划经济体制的影响,财务管理软件处在研究阶段,大部分的财务管理软件不能满足企业的需要,它们存在着各种各样的问题。因此,在企业财务信息管理这个方面还需要不断的探究改进,不断完善财务管理系统的功能,提高财务管理系统的管理效率。1.2现行系统存在问题的分析财务信息管理系统是一个影响因素多的复杂项目,因此制定一个完善、合理的开发计划,不仅可以保证系统成功的成功开发,也可以提高系统开发效率。早前财务管理大部分还是进行着手工管理,手工进行管理存在许多问题:(1)工作起来效率很低,不能及时查询与统计各类信息。(2)由于各种人为因素,经常造成数据的遗漏和误报,给企业的运 行造成了很大的影响。(3)对企业人力财力的开支很高。近年来,网络技术发展迅速,计算机应用程序已经深入各行各业,在企业单位中,信息管理系统使得企业成员之间的信息交流变得更为迅速,大大的提高了员工的工作效率。那么怎样在现有经营模式下选择最好的财务管理模式,使用合适的财务管理系统,实现企业的管理目标,适应企业信息化发展的需要,是一个值得探究的问题。1.3问题解决方案
用计算机管理信息可以储存的记录量多、速度快,查询快速,并且能够给我们提供及时有效的信息处理,减少错误的发生。同时财务信息管理系统的开发将逐步从客户端/服务端结构转型为浏览器/服务器结构,最大程度的把运算内容提交给服务器,节约企业运营成本,员工只需要通过浏览器就可以实现对财务信息进行的管理。财务信息管理系统的建立,需要对不同用户的需求进行调查与分析,以确定系统要实现的目标,提出解决问题的方法,这是系统设计的重要环节。针对以上问题,可以采用计算机处理信息的方式,方便快捷地共享信息、交流信息,同时高效协同地工作,解决一些现实中的的问题。在软件、硬件方面对系统的需求上,系统要容易使用,界面友好,掌握简单,可以很快速方便地管理各类信息。在开发方式对系统的需求上,由于是用于财务信息管理,所以系统设计开发要在短时间内完成,减少开发成本,提高开发效率。1.4主要开发技术及开发环境1.4.1主要开发技术(1)Struts2Struts2的核心是拦截器,采用调用拦截器的机制来处理用户的发送的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI脱离开。当Web容器收到请求request时,它将请求传递给一个Struts2中的过滤器,接下来需要调用过滤器核心控制器,然后它调用Action连接器来确定请求哪个Action,Action连接器返回一个详细信息的Action连接对象。接下来过滤分配器将控制权赋予Action代理器,Action代理期调用配置管理器从配置文件struts.xml中读取配置信息,然后创建Action调用器对象,Action调用器在调用Action之前会依次的调用所用配置拦截器一旦执行结果返回结果字符串Action调用器负责查找结果字符串对应的结果Result,然后执行这个结果。Result会调用JSP来呈现页面,之后拦截器会在被执行,最后响应response被返回在web.xml中配置的那些过滤器和核心控制器。(2)HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操作数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心类和接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Hibernate封装了jdbc,简化了很多重复的代码,优化了DAO层的编码工作,使开发更加对象化,移植性更好,同时也支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变Hibernate的代码。(3)MVC模式MVC模式是模型model-视图view-控制器controller的缩写,是用一种业务逻辑、数据、界面显示分离的方法来写代码,将业务逻辑集中到一个部件里,在改进和个性化设计界面及与用户交互的同时,不需要重新编写业务的逻辑。MVC是一个框架模式,它使应用程序的输入、处理和输出分开。MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处 理自己的任务。最典型的MVC就是JSP+servlet+javabean的设计模式。MVC的好处是它能为应用程序处理很多不同的视图。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。控制器接受用户的输入并调用模型层和视图层去实现用户的需求,所以当单击浏览器页面中的超链接和发送form表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型层去处理这个请求,然后再确定用哪个jsp页面来显示返回的数据。1.4.2开发环境JDKJDK是整个Java的核心,包括了Java运行环境 ,Java工具和Java 基础类库。不论什么Java应用服务器,实质都是内置了某个版本的JDK。MySQLMySQL是一个小巧的数据库管理系统,在很多情况下你可以自由使用。因为它的功能强大、灵活性高、应用编程接口丰富以及系统结构精巧,受到了广大软件爱好者和商业软件用户的使用,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言SQL进行数据库管理。MySQL因为其速度、可靠性和适应性而备受关注,大多数在不需要事务化处理的情况下,MySQL是管理信息最好的选择。MySQL是一个真正的多用户、多线程SQL数据库服务器。结构化查询语言是世界上最流行的数据库语言。MySQL是以一个客户端/服务器结构的实现,它由一个服务器保护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。Tomcat服务器Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是一个小型的轻量级应用服务器,经常用来当作Web系统项目的服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。Tomcat技术先进、性能稳定,同时使用时不收取费用,因此受到了Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善之中,任何一个对Tomcat设计感兴趣的程序员都可以更改它的一些设计或在其中添加新的功能。第二章系统需求分析2.1系统调研首先对企业财务信息管理的整体情况进行调研,调研分两步进行,一是初步调研,二是详细调研。在调研时可能采用会议讨论法和个人访谈法两种方法,通过会议讨论法了解他们日常收支的整体情况,了解企业部门和员工的运作方式,记录他们对开发财务管理系统的要求和建议等。通过个人访谈法了解系统各个模块的主要职能及具体运作方式、过程等。对企业财务信息管理进行初步调研的内容为:调查企业人员财务收支的的情况,了解平时企业都有哪些业务,如何 安排,具体 到时间、地点。了解企业中部门和员工的信息的管理方法,对企业各个部分由哪些人 负责作初步 的认知和熟悉。分析企业对于部门、员工和账目信息的查询与统计方式。2.2业务流程该系统的主要模块包块部门管理、员工管理、公告管理、考勤管理、工资管理、账目管理,主要流程是系统管理员、会计、出席员工和普通用户通过登录模块进入系统主页,之后可以选择相应的功能对信息记录进行管理。用户登录时需要在数据库中检测是否存在该用户信息,并查询相应的权限,如果有的话可以登录成功,否则登录失败,根据登录的用户所设置的权限,系统中具有不同的功能:(1)管理员具有所有的权限;(2)会计可以进行对工资和账目的管理;(3)出席员工登录后可以进行对公司公告、考勤和工资的操作;(4)普通用户登录后可以查询自己的考勤信息和工资信息。该系统的业务流程图如下:登录财务管理系统登录财务管理系统登录失败身份验证身份验证登录成功财务管理系统界面财务管理系统界面查询、增加、删除、修改信息系统设置公司公告考勤管理修改密码部门设置账目管理工资查询系统设置公司公告考勤管理修改密码部门设置账目管理工资查询图2-1系统业务流程图2.3系统结构框架财务管理系统的主要功能是实现财务信息管理的的系统化,规范化,自动化,其特点是界面友好,能实现企业的基本财务信息管理。本系统包括由六大模块组成:用户管理、部门模块、公司公告模块、员工工资模块、员工考勤模块、账目模块、修改密码: (1)用户管理:实现用户的添加、删除、修改、权限管理功能,用户登录 后通过点击管理菜单实现各个模块的管理工作。 (2)部门:实现对部门的查询、增加、删除、修改功能,点击部门管理查 询部门信息,通过查询界面的各个子菜单实现具体信息管理。 (3)公告模块:实现企业人员对发布的公告进行查询、添加、修改、删除 的功能,点击公司公告查询公告信息,通过查询界面的各个子菜单实现 具体的公告信息管理。 (4)工资模块:实现对员工工资的查询、修改、删除、添加功能,点击工 资结算进入查询页面,通过在页面中的各个子菜单实现对员工工资信息 的管理。 (5)考勤模块:实现对员工工作时间的查询、添加、修改、删除功能,点 击考勤管理进入考勤界面,通过考勤时间自动计算出员工总工资。 (6)账目模块:实现对公司收支情况的查询、添加、修改、删除功能。 (7)修改密码:点击修改密码可以修改本人密码,输入旧密码后再输入要 重新设置的密码,如果旧密码正确即可修改密码。第三章系统设计3.1系统架构设计本系统采用Struts2+Hibernate整合框架实现,Struts框架是一种基于Java的技术。Hibernate框架使用O/R映射技术,对JDBC进行轻量级的对象封装,让普通的Java对象变成持久化类,管理Java类到数据库表的映射,并提供数据查询和获取数据的方法。Struts框架与Hibernate框架的整合实现web应用的开发,既便于界面层的结构化开发,又可以减少数据访问层的代码编写量,进一步提高应用程序开发效率,因此与传统的基于ASP的管理系统相比,基于Struts2与Hibernate框架设计的web应用系统具有高效性、可伸缩性、稳定性,同时还具有灵活性、易维护性和松散耦合等优点。View视图(JSP页面)View视图(JSP页面)提交信息,发送请求响应请求Controller控制器Controller控制器MySQL数据库转发请求MySQL数据库返回结果Model层(JavaBean)Model层(JavaBean)Model层(JavaBean)数据操作Model层(JavaBean)Model层(JavaBean)Model层(JavaBean)图3-1系统架构图3.2系统功能设计3.2.1登录功能设计打开财务管理系统,进入主界面。输入用户名和密码点击登录到财务管理界面,如果用户名或密码输入错误则会跳转登录界面,根据登录的用户不同,登录后所具有的功能也不同。3.2.2系统模块功能设计通过输入用户名和密码进入到了财务管理系统界面,点击页面中的管理菜单,对部门、员工、工资、公告、考勤、账目进行编辑和管理,同时还可以选择修改用户密码,退出系统时点击右上角退出菜单。(1)系统信息查询:通过点击菜单栏中的模块按钮进入到查询管理系统,分别有部门信息、员工信息、公告信息、考勤信息、工资信息、账目信息。(2)系统模块管理通过点击菜单栏中的模块进入到各个模块管理界面。每个界面模块中都分别包括添加、修改、删除功能。(3)系统维护点击版本信息查看系统版本信息,通过点击菜单栏中的登录和退出按钮进入到系统维护界面。功能分别为登录系统、退出系统。(4)退出通过点击退出可以退出财务管理系统,系统跳转登录页面。3.3系统模块在模块设计阶段应着重解决实现需求分析的程序设计问题。这包括考虑互关系,以及模块之间的传递的信息。财务管理系统包含用部门和用户管理、统计、查询,员工工资和企业账目收支情况的管理以及系统版本信息的查看等功能。该系统执行时,登录系统根据登录人员的不同,显示不同的功能,然后用户需要再选择的自己需要的数据进行操作,同时也可以进行对对信息的添加、修改、查询、统计。财务管理系统属于事务型系统,根据以上分析,其系统结构图示如图3-2所示:财务管理系统财务管理系统部门管理账目管理修改密码查询工资考勤管理公司公告员工管理 部门管理账目管理修改密码查询工资考勤管理公司公告员工管理图3-2系统模块图3.4系统模块功能设计3.4.1系统管理系统管理登录系统管理登录退出版本号退出版本号图3-3系统管理3.4.2部门管理部门管理部门管理删除信息修改信息添加信息信息查询删除信息修改信息添加信息信息查询 图3-4部门管理3.4.3公司公告公司公告公司公告删除记录修改记录添加记录信息查询删除记录修改记录添加记录信息查询图3-5公司公告3.4.4用户管理员工管理员工管理删除用户修改用户添加用户信息查询删除用户修改用户添加用户信息查询图3-6员工管理3.4.5工资结算工资结算工资结算删除记录修改记录添加记录信息查询删除记录修改记录添加记录信息查询图3-7工资结算3.4.6考勤统计考勤统计考勤统计删除记录修改记录添加记录信息查询删除记录修改记录添加记录信息查询图3-8考勤统计3.4.7账目统计账目统计账目统计删除记录修改记录添加记录信息查询删除记录修改记录添加记录信息查询图3-9账目统计3.5数据库设计数据库的设计,在程序开发中起着至关重要的作用,它往往决定了在后面开发进行怎么样的程序编码。本系统考虑到用户量,开发经济性,决定用MYSQL作为数据库系统,MYSQL数据库系统虽然说规模小,功能有限,但是丝毫也没用减少它受欢迎的程度,对于一般的个人使用者和中小企业来说,MYSQL提供的功能已经绰绰有余了,由于MYSQL是开发源码的软件,因此大大降低了使用的总体成本,它可以处理千万条的数据记录,同时还支持多种存储引擎。数据库设计阶段是在需求分析的基础上,设计出能够满足用户的各种实体及他们之间的关系,它是整个数据库设计的关键。这次设计仍采用传统的实体联系图作为概念设计的工具。进行优化后,尽量满足结构清晰、属性合理的要求。密码姓名地址名称密码姓名地址名称编号编号部门编号编号部门电话员工拥有部门1n电话员工拥有部门emailemail拥有11拥有拥有拥有n总工资编号编号工资时间账目1总工资编号编号工资时间账目部门部门加班天数姓名支出加班天数姓名支出工作日期收入记录工作日期收入记录图3-10系统ER图3.6数据表设计名类型长度小数点允许空值dept_idint110notnulldept_namevarchar2550nulldept_addrvarchar2550nulldept_phonevarchar2550null3.6.1部门表表3-11部门表tbl_dept3.6.2员工表表3-12员工表tbl_staff名类型长度小数点允许空值staff_idint110notnullstaff_namevarchar2550nullstaff_passwordvarchar2550nullstaff_jobvarchar2550nullstaff_deptvarchar2550nullstaff_datevarchar2550nullstaff_payint110nullstaff_emailvarchar2550nullstaff_telvarchar2550nullstaff_typeint110null3.6.3公告表表3-13公告表tbl_announcement名类型长度小数点允许空值annou_idint110notnulltextvarchar2550nulldatevarchar2550nullendTimevarchar2550nulldeptNamevarchar2550nulluservarchar2550null3.6.4考勤统计表表3-14考勤表tbl_checks名类型长度小数点允许空值idint110notnullnamevarchar2550nullworkdaysint110nullovertimeint110nulldatedatetime00nullrestdaysint110null3.6.5工资表表3-15工资表tbl_salary名类型长度小数点允许空值idint110notnullnamevarchar2550nullsalarydouble00nullworkdaysint110nullovertimeint110nullcountwagesdouble00null3.6.6账目信息表表3-16账目表tbl_accounts名类型长度小数点允许空值idint110notnulldeptnamevarchar2550nullnamevarchar2550nullincomedouble00nullpaydouble00nulldatedate00null3.7系统安全性设计本系统对所有登录本系统的使用人员进行严格的用户名和密码的管理,如果不属于系统事先设定好的合法用户,则系统无法登录,不同的人员登录后具有不同的权限,可以操作不同的系统模块。第四章系统实现4.1登录用户根据用户名和密码登录系统,根据所具有的权限,不同的用户登录后显示不同的功能:输入用户名和密码输入用户名和密码登录失败验证验证登录成功出席用户会计管理员普通用户出席用户会计管理员普通用户图4-1登录功能流程图在登录界面输入用户名和密码,点击提交后把input的值传入loginAction中,通过input的name匹配Action中属性,Action中的属性自动获取传过来的值。通过返回值的权限类型判断用户的权限,跳转不同的页面。LoginAction服务器JSP页面发送请求转发请求LoginAction服务器JSP页面调用method运行StaffDao层方法,login服务器 把返回值传回页面 获取login返回值运行StaffDao层方法,login服务器图4-2登录功能运行图页面实现:<divclass="main"> <divclass="login-form"> <h1>用户登录</h1> <divclass="head"> <imgsrc="images/user.png"alt=""/>//插入背景图片 </div> <formaction="loginAction"method="post">//输入用户名进行登录 <inputname="name"type="text"class="text"value="USERNAME" onfocus="this.value='';" onblur="if(this.value==''){this.value='USERNAME';}">//此处为输入密码 <inputname="password"type="password"value="Password"onfocus="this.value='';" onblur="if(this.value==''){this.value='Password';}"> //点击登陆按钮进入系统管理 <divclass="submit"> <inputtype="submit"onclick="myFunction()"value="登录"> </div> <p> <ahref="">ForgotPassword?</a> </p> </form> </div>用户名和密码传到Action中后,Action自动找到所对应的登录方法,Action中的方法调用Dao层中的login登录方法,获取方法的值后把值传回jsp页面。后台实现:publicStafflogin(Stringname,Stringpassword){ SessionFactorysf=HibernateUtil.getSessionFactory(); Sessionsession=sf.getCurrentSession(); session.beginTransaction(); Staffstaff=null;//通过用户名和密码查询员工表中是否存在这个用户 Stringhql="fromStaffwherename=:nameandpassword=:password"; Queryquery=session.createQuery(hql);//设置查询语句中各个占位符的值 query.setString("name",name); query.setString("password",password); List<Staff>list=query.list();//判断是否查询出值,如果能够查到值,则返回信息 if(list.size()==1){ staff=list.get(0); } session.getTransaction().commit(); returnstaff; }4.2部门实现4.2.1查询部门信息用户登录系统后,点击部门管理,查询部门信息:登录系统登录系统点击部门管理点击部门管理显示部门信息显示部门信息图4-3查询功能流程图登录界面后点击部门管理,系统跳转到listAction,listAction调用Action中的method,通过method找到Action中的方法,Action中的方法调用Dao层的方法,把获取的Dao层的部门list传到jsp页面中,jsp通过Struts2中的s标签中的iterate循环输出部门表所有的信息。ListAction服务器JSP页面发送请求转发请求ListAction服务器JSP页面调用method运行DeptDao层方法,list服务器 把返回值传回页面 获取list返回值运行DeptDao层方法,list服务器图4-4查询功能运行图页面实现:<tr> <thwidth="20%"bgcolor="gray">部门编号</th> <thwidth="20%"bgcolor="gray">部门名称</th> <thwidth="20%"bgcolor="gray">部门地址</th> <thwidth="20%"bgcolor="gray">联系电话</th> <thwidth="20%"bgcolor="gray">操作</th> </tr> <!--循环输出部门记录--> <s:iteratorvalue="list"var="li"> <tr> <tdbgcolor="#FFFFFF"><s:propertyvalue="#li.id"/></td> <tdbgcolor="#FFFFFF"><s:propertyvalue="#"/></td> <tdbgcolor="#FFFFFF"><s:propertyvalue="#li.address"/></td> <tdbgcolor="#FFFFFF"><s:propertyvalue="#li.phone"/></td> <tdbgcolor="#FFFFFF"> <ahref="selectDeptByIdAction?id=<s:propertyvalue="#li.id"/>"><button>修改</button></a> <a href="deptDeleteAction?id=<s:propertyvalue="#li.id"/>"><button>删除</button></a> </td> </tr> </s:iterator>用hql语句从部门表中查询所有的部门信息,用list接受所查询到的信息,并把list中的属性设置成dept类,这样每一个list的元素都是一条部门信息,获取list后把list的值传回jsp页面。后台实现:publicList<Dept>list(){ SessionFactorysf=HibernateUtil.getSessionFactory();//获得当前的会话 Sessionsession=sf.getCurrentSession(); //开始事务 session.beginTransaction(); Queryquery=session.createQuery("fromDept"); List<Dept>list=query.list(); session.getTransaction().commit();//提交事务//返回查询到的结果 returnlist; }4.2.2部门添加企业新增加一个部门时,管理员可以在部门信息页面,点击添加部门:查看部门信息查看部门信息点击添加部门点击添加部门跳转部门添加页面跳转部门添加页面填写部门信息填写部门信息点击提交,添加成功点击提交,添加成功图4-5添加功能流程图通过点击添加部门跳转部门添加页面,在部门添加页面输入要添加的部门信息,每一个部门信息input输入框都有对应的name属性,部门信息输入完后点击提交,跳转到addAction,addAction通过method找到对应的Action中的方法,Action中的方法调用Dao层中的add方法。AddAction服务器JSP页面发送请求转发请求AddAction服务器JSP页面调用method运行DeptDao层方法,add 运行DeptDao层方法,add添加成功ListActionDeptDao层服务器把值传回页面 返回listListActionDeptDao层服务器图4-6添加功能运行图页面实现:<tableborder="0"width="950"height="350"bgcolor="#ffffff"align="center"> <tr> <tdalign="center"valign="top"> <formname="form1"method="post"action="deptAddAction"> <tablewidth="500"border="0"cellpadding="5"cellspacing="1" bgcolor="#CCCCCC"> <tr> <tdheight="24"colspan="2"align="center"bgcolor="#D96A02"> 请填写新部门信息 </td> </tr> <tr> <tdwidth="120"height="24"bgcolor="#FFFFFF"> 部门编号: </td> <tdwidth="357"height="24"bgcolor="#FFFFFF"> <inputname="id"type="text"id="id"> * </td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF"> 部门名称: </td> <tdheight="24"bgcolor="#FFFFFF"> <inputname="name"type="text"id="name"> * </td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF"> 部门地址: </td> <tdheight="24"bgcolor="#FFFFFF"> <inputname="address"type="text"id="address"> * </td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF"> 部门电话: </td> <tdheight="24"bgcolor="#FFFFFF"> <inputname="phone"type="text"id="phone"> * </td> </tr> <tr> <tdheight="24"colspan="2"align="center"bgcolor="#FFFFFF"> <inputtype="submit"name="Submit"value="提交"> <inputtype="button"name="Submit2"value="取消"onClick="history.back();"> </td> </tr> </table> </form> </td> </tr> </table>创建一个新的dept对象,并把对象中的属性赋值,之后通过session保存这个对象,对象记录添加到数据中。后台实现:publicvoidadd(intid,Stringname,Stringaddress,Stringphone){ SessionFactorysf=HibernateUtil.getSessionFactory(); Sessionsession=sf.getCurrentSession(); session.beginTransaction(); Deptdept=newDept();//设置添加的新部门信息 dept.setId(id); dept.setName(name); dept.setAddress(address); dept.setPhone(phone);//保存部门信息,添加部门 session.save(dept); session.getTransaction().commit(); }4.2.3部门修改如果部门信息变动,用户可以点击修改部门来对部门信息进行修改:查看部门信息查看部门信息点击修改点击修改跳转到修改页面跳转到修改页面修改部门信息修改部门信息点击提交,修改成功点击提交,修改成功图4-7修改功能流程图点击部门修改跳转到部门修改页面,点击部门修改时跳转到selectbyidAction中并把部门激流的id值传入action,调用dao层中的方法,通过id值查找部门信息并返回部门信息,jsp页面用s标签遍历返回的部门对象的属性并显示在input输入框中。UpdateAction服务器JSP页面发送请求转发请求UpdateAction服务器JSP页面调用method运行DeptDao层方法,update 运行DeptDao层方法,update修改成功ListActionDeptDao层服务器把值传回页面 返回listListActionDeptDao层服务器图4-8修改功能运行图页面实现: align="center"> <tr> <tdalign="center"valign="top"> <formname="form1"method="post"action="deptUpdateAction"> <tablewidth="500"border="0"cellpadding="5"cellspacing="1" bgcolor="black"> <tr> <tdheight="24"colspan="2"align="center"bgcolor="#D96A02"> 请修改新部门信息</td> </tr> <tr> <tdwidth="120"height="24"bgcolor="#FFFFFF">部门编号</td> <tdwidth="357"height="24"bgcolor="#FFFFFF"><inputreadonly="readonly" name="id"type="text"value="<s:propertyvalue="dept.id"/>">*</td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF">部门名称</td> <tdheight="24"bgcolor="#FFFFFF"><input name="name"type="text"value="<s:propertyvalue=''/>"> *</td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF">部门地址</td> <tdheight="24"bgcolor="#FFFFFF"><input name="address"type="text"value="<s:propertyvalue='dept.address'/>">*</td> </tr> <tr> <tdheight="24"bgcolor="#FFFFFF">部门电话</td> <tdheight="24"bgcolor="#FFFFFF"><input name="phone"type="text"value="<s:propertyvalue='dept.phone'/>">*</td> </tr> <tr> <tdheight="24"colspan="2"align="center"bgcolor="#FFFFFF"> <inputtype="submit"name="Submit"value="提交"> <inputtype="button"name="Submit2"value="取消" onClick="history.back();"></td> </tr> </table> </form></td> </tr> </table>在页面中修改部门信息后,点击提交跳转到updateAction中,Action调用Dao层中的update方法,hql语句通过id属性更改部门信息。后台实现:publicvoidupdate(intid,Stringname,Stringaddress,Stringphone){ SessionFactorysf=HibernateUtil.getSessionFactory(); Sessionsession=sf.getCurrentSession(); session.beginTransaction(); Queryquery=session.createQuery("updateDeptsetid=:id,name=:name,address=:address,phone=:phonewhereid=:id");//设置修改的部门信息 query.setInteger("id",id); query.setString("name",name); query.setString("address",address); query.setString("phone",phone);//执行修改语句 query.executeUpdate();//提交事务 session.getTransaction().commit(); }4.2.4部门删除如果企业部门解除,点击删除删除部门信息:部门查询部门查询点击删除点击删除删除成功删除成功图4-9删除功能流程图点击删除后跳转到deleteAction中并把id值传到Action中,Action通过method找到对应的方法,在方法中调用Dao层的方法,Dao层中的方法用hql语句通过id值删除对应的信息记录,执行更新。DeleteAction服务器JSP页面发送请求转发请求DeleteAction服务器JSP页面调用method运行DeptDao层方法,delete 运行DeptDao层方法,delete添加成功ListAction服务器DeptDao层把值传回页面 返回listListAction服务器DeptDao层图4-10删除功能运行图后台实现:publicvoiddelete(intid){ SessionFactorysf=HibernateUtil.getSessionFactory(); Sessionsession=sf.getCurrentSession(); session.beginTransaction();//通过id删除部门信息 Queryquery=session.createQuery("deletefromStaffwhereid=:id"); query.setInteger("id",id); query.executeUpdate(); session.getTransaction().commit();}第五章系统运行效果5.1登录程序开始运行,进入财务管理系统登录界面,输入用户名和密码:图5-1登录输入用户名和密码后,点击“登录”按钮进入管理系统,不同的人员登录后 具有有不同的功能,人员类型主要是管理员、会计、出席员工和普通员工, 由于管理员权限最高,在此以管理员登陆:图5-2管理员登陆登录后进入系统后显示的界面如下:图5-3登陆成功5.2退出登录后,还可以退出系统的使用,点击退出后,系统回到登录页面,如图:图5-4退出点击部门管理:图5-5查询部门5.3部门查询在对应的部门列表后点击修改后,跳转修改界面,修改部门信息:图5-6修改部门部门编号不可修改,修改后点击提交,跳转到部门查询页面;5.4添加部门点击添加部门后,跳转到添加部门页面,输入部门信息:图5-7添加部门输入部门信息,击提交后:图5-8返回查询页面5.5删除部门在第三行点击删除后:图5-9删除5.6修改密码修改密码,输入原密码后再输入要重新设置的密码,如果原密码正确,则修改成功:图5-10修改密码5.7按id查询部门信息按id查询信息,在查询栏中输入要查找的部门id,点击查询即可: 图5-11按id查找信息总结这次毕业设计是对我大学以及在培训中学习的知识的一个很好总结,也是对我所学习的内容的一次实践,让我在实际操作中对系统开发有了更深的体会。在本次毕业设计过程中,我对大学所学知识有了一个综合的认识和理解,同时,对于知识的综合应用更加得心应手,能更加变通的使用我所学习的知识去解决生活中所遇到的一些问题。在本次毕业设计中,在系统实现部分也遇到不少的问题:(1)在最开始的时候tomcat服务器总出问题,项目部署不上。解决方法:检查tomcat端口,重新配置tomcat服务器或重新部署文件。(2)NullPointException解决方法:测试方法是否能够正确返回值,检查参数是否传到Action 中或检查方法参数是否正确。(3)404错误解决方法:找不到页面大多情况下是跳转的页面的书写错误,检查src的地址或href的地址是否正确。(4)input错误解决方法:认真检查jsp页面中的input的那么是否有重复值或者name值是否和Action中的属性对应,以及Action中的属性的get和set方法是否正确。本系统采用Struts2+Hibernate的web框架实现,使用MVC模式进行开发,层次结构清晰,模块分工明确,有利于系统以后的维护和检查,同时用户界面清晰明了,企业任何人员都能够轻松操作。在本系统的开发过程中,由于项目经验较少,在知识、经验方面都存在着欠缺,因此,该系统可能会存在一些缺陷和不足。在本次毕业设计中,我从指导老师身上学到了很多东西。他们认真负责的工作态度,严谨的治学精神和深厚的理论水平都让我受益匪浅。在代码的编写调试和论文的修改上,都给与了我许多的意见,指出了我很多错误,这对于我以后的工作和学习都是一种巨大的帮助,在此感谢陈敏和蒋卫祥老师给与的耐心辅导。毕业设计让我学习的内容与实践结合了起来,加深了了我对书本知识的理解能力以及应用能力,除此之外,还锻炼了我的自主学习的能力和创新能力。在本次毕业设计中我感受到了自己专业知识的不足,掌握的理论知识不能很好的应用到实际设计中,实现过程中我不断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西培贤国际职业学院《特殊儿童发展与学习》2023-2024学年第一学期期末试卷
- 宣城职业技术学院《数据挖掘与R语言》2023-2024学年第一学期期末试卷
- 甘肃省酒泉市肃北蒙古族自治县2024-2025学年小升初总复习数学精练含解析
- 重庆工商大学派斯学院《建筑环境热力学》2023-2024学年第二学期期末试卷
- 广西信息职业技术学院《空中领航学》2023-2024学年第二学期期末试卷
- 南京林业大学《英语阅读V》2023-2024学年第一学期期末试卷
- 贵州省黔南布依族苗族自治州福泉市2025年五年级数学第二学期期末检测试题含答案
- 海南省乐东县2025年三下数学期末达标检测模拟试题含解析
- 青海交通职业技术学院《作家作品研究》2023-2024学年第一学期期末试卷
- 供应商质量管理内容
- 2024室内电力智能巡检机器人技术标准
- 3-6《3-6岁儿童学习与发展指南》目标解读-图文
- 【正版授权】 ISO 17694:2016 EN Footwear - Test methods for uppers and lining - Flex resistance
- 2024年个人信用报告(个人简版)样本(带水印-可编辑)
- DZ∕T 0202-2020 矿产地质勘查规范 铝土矿(正式版)
- 天然装饰石材
- 2023年河南省对口升学计算机类基础课试卷
- 门诊导医正确分诊
- 20CS03-1一体化预制泵站选用与安装一
- 建筑施工环境保护培训
- 2024年西安医学高等专科学校单招职业技能测试题库及答案解析
评论
0/150
提交评论