1. 研究目的与意义
对每个家庭来说,维持家庭的正常日常生活开支是一件必不可少的事情,但同时这也是一件麻烦的事情,因为每天都会产生很多数据。
如果能够记录下来家庭的日常开支,那么就可以帮助家庭掌握日常的支出情况。
然而如果采用传统手写的方式,则会十分麻烦和繁琐,并且统计起来也十分不方便,这种方式费时费力。
2. 课题关键问题和重难点
1.如何设计数据库。数据库的设计关系到数据如何存储,关系到对数据操作的性能,当数据量变大的时候,数据库设计的好坏会影响到整体的性能。此外数据库设计的方式不同对编码也会有一定的影响。
2.如何划分系统的功能模块。任何一个系统都有明确的功能模块,如何划分功能模块就需要把需求分析清楚,在此基础上进行分析归纳。划分功能模块关系到系统的详细设计,关系到客户的体验。
3.如何搭建系统架构。系统架构关系到编码阶段的难易度以及代码数量和复杂度,甚至影响开发周期。
3. 国内外研究现状(文献综述)
在Java EE开发中,Hibernate Struts2 Spring框架应用十分广泛。
Hibernate是一种流行的对象-关系映射(ORM)工具,它能够建立面向对象的域模型和关系数据模型之间的映射,它负责Java对象和关系数据之间的映射。它对JDBC API进行了封装,负责Java对象的持久化,在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注于实现业务逻辑。在Java应用中使用Hibernate包含以下步骤:1.创建Hibernate配置文件;2.创建持久化类;3,创建对象-关系映射文件;4.通过Hibernate API编写访问数据库的代码。Session接口是Hibernate向应用程序提供的操纵数据库的最主要接口,它提供了基本的保存、更新、删除和查询方法,处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。Hibernate采用二级缓存机制,若在第一级缓存没有查到相应数据,则到第二级缓存查询,若在第二级缓存也没有查到,那么才查询数据库。第一级缓存是Session的缓存,第二级缓存是SessionFactory的外置缓存。Hibernate的Transcation类用于声明事务,它的commit()方法用于提交事务,rollback()方法用于撤销事务。HQL是一种面向对象的查询语言,Hibernate还提供了HQL的查询接口,能执行HQL查询语句,在Hibernate中HQL是使用最广的一种检索方式。
Struts2是是Jave EE开发使用比较广泛的MVC框架,大致上Struts2框架由3个部分组成:核心控制器StrutsPrepareAndExecuteFilter、业务控制器和用户实现的业务逻辑组件。Struts2框架大致处理流程如下:1.浏览器发送请求,如请求/mypage.action等;2.核心控制器StrutsPrepareAndExecuteFilter根据请求决定调用合适的Action;3.Struts2的拦截器链自动对请求应用通用功能,如validation或文件上传等;4.回调Action的execute方法;5.Action的execute方法将处理结果存入Stack Context中,并返回一个字符串,核心控制器将根据返回的字符串跳转到指定视图资源,该视图资源将会读写Stack Context中的信息,并向浏览器生成响应数据。Struts2提供了非常强大的类型转换机制,在开发中转换十分方便,Struts2的类型转换基于OGNL表达式,只要把HTML输入项(表单元素和其他GET/POST的参数)命名为合法的OGNL表达式,就可以充分利用Struts2的类型转换机制。另一方面,Struts2还提供了基于校验框架的输入校验。
4. 研究方案
本系统基于B/S结构,使用B/S结构可以在任何地方进行操作而不用安装任何专门的软件,可以方便用户使用系统。本系统主要模块有:注册和登录、添加支出类别、添加支出、按照事件轴的方式展示、按月、季度、年来统计家庭支出情况,用excel方式导出结果。
技术实现方面,使用Struts2、Spring和Hibernate服务端程序开发,使用MySQL实现系统相关数据的存储和管理,界面使用JSP和时间轴控件完成,使用软件工程技术实现对系统开发过程的管理。这些技术现在已经比较成熟,采用这些技术是可行的。
5. 工作计划
第一周:设计系统用例图并进行完善
第二周:进行系统的需求分析
第三周:进行系统的功能分割,并完善需求规格的说明
以上是毕业论文开题报告,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。