基于SSH框架的家庭理财系统.docx
- 文档编号:6145691
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:20
- 大小:75.64KB
基于SSH框架的家庭理财系统.docx
《基于SSH框架的家庭理财系统.docx》由会员分享,可在线阅读,更多相关《基于SSH框架的家庭理财系统.docx(20页珍藏版)》请在冰豆网上搜索。
基于SSH框架的家庭理财系统
基于SSH框架的家庭理财系统
总目录
一、毕业设计(论文)
二、指导老师评语表
三、评阅人评阅表
四、答辩记录表
五、答辩委员会评语
基于SSH框架的家庭理财系统
摘要:
在我国大部分家庭的财产收入都有了较大的增长的同时,家庭财产的收入、支出也变得多种多样。
家庭的收支是一组庞大、复杂的数据,而且每天都会产生新的数据。
用一个“家庭理财系统”来对家庭的财产(包括收支情况、固定资产、债务等)进行科学、有效、便捷的管理,节约开支并发挥资金的最大效益。
本系统设计的是一套功能比较完善的、方便使用的基于Web家庭理财系统。
家庭理财系统功能主要包括日常消费、收入记录、统计管理等三部分。
其中该系统的开发是以MyEclipse作为开发平台,选用Tomcat作为Web服务器和Structs2框架。
系统的技术架构采用三层架构,表示层由JSP页面来呈现业务的表现形式,使用JavaBean来完成业务逻辑的处理,数据层MySQL数据库提供服务,使系统能够有效降低建设和维护成本,同时简化管理,也可适应不断的变化和新的需求。
关键词:
家庭理财系统,Jsp,Java,MyEclipse
1绪论
长期以来,人们都使用传统的人工方式记录和管理家庭或者自己的财务情况。
传统的纸币记录不方便而且不便于长期保存,效率低下同时保密性也不强。
随着人们收入的提高和消费的增多,家庭所要记录管理的理财信息也越来越多,传统的纸币记录已经不能满足需求。
随之依托计算机的家庭理财系统已经成为很多家庭财务管理的一个重要工具,计算机的普遍使用为家庭理财系统的普及使用提供了坚实的基础,计算机准确高效准确的特点大大提高了财务管理的效率和准确性,而且大大的提高了其安全性。
家庭理财系统在发达国家的使用已非常普遍,而且其功能强大,系统里包含有股票、基金的预测分析等功能,本课题针对家庭理财系统的发展趋势开发出一套行之有效的家庭理财系统。
作为计算机应用的一部分,使用计算机对家庭财务进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高家庭财务管理的效率,也是家庭理财的科学化、正规化管理,与先进科学技术接轨的重要条件
家庭理财就是学会有效、合理地处理和运用钱财,让自己的花费发挥最大的效用,以达到最大限度地满足日常生活需要的目的。
家庭理财就是利用企业理财和金融得方法对家庭经济(主要只家庭收入和支出)进行计划和管理,增强家庭经济实力,提高抗风险能力,增大家庭效用。
从广义的角度来讲,合理的家庭理财也会节省社会资源,提高社会福利,促进社会的稳定发展。
家庭理财就是利用开源节流的原则,增加收入,节省支出,用最合理的方式来达到一个家庭所希望达到的经济目标。
这样的目标小到增添家电设备,外出旅游,大到买车、购屋、储备子女的教育经费,直至安排退休后的晚年生活等等。
系统使用JSP结合J2EE技术设计并实现一个基于MySQL数据库的家庭理财系统。
并且系统应该具有良好的可扩展行、可靠性、易维护性,更适于用户确切的管理自己的家庭财务。
Stucts是一款开源的Apache项目他的Web应用程序的开发相对简便,它能是系统脉络清晰方便维护。
Hibernate支持各种关系数据库,从一对一到多对多的各种复杂关系,非常灵活。
Spring框架使用接口而不是使用类而且将使用接口的复杂度几乎降低到了零。
家庭理财系统以家庭理财的概念、理论、本质为基础,剖析了家庭的经济结构,并对理财市场和理财产品进行了分析,在此基础上提出了家庭理财的模式及如何进行家庭理财规划。
家庭理财系统是每一个家庭管理家庭财务收入和支出的不可缺少的一个管理信息系统,它的内容对于家庭的管理者来说是至关重要的,所以家庭理财系统应该能够为一个家庭的管理者提供充足的信息和快捷的查询手段,方便家庭的管理者的合理理财。
2研究的基本内容
2.1关键技术
本系统分使用MyEclipse平台及Java语言开发,涉及到Socket通信、MySQL数据存储,基于SSH框架的数据呈现及管理。
系统采用MVC模式。
该模式是现在最流行的一种设计模式。
MVC包括3类对象,简单地说,Model是应用对象,VIEW是它在屏幕上的表示。
Controller定义用户界面输入的相应方式。
(1)MyEclipse开发平台
MyEclipse企业级工作平台是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,Javascript,MySQL,Hibernate等家庭理财系统需要的使用的技术模块。
(2)JSP页面技术
JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。
JSP技术比较简单,类似于ASP、PHP这些脚本语言。
JSP的基本语法:
两个注释、3个脚本元素、8个动作指令。
[1]
(3)JavaBean组件技术
JavaBean称为“Java豆”,它是封装业务逻辑,以便于外界的调用。
调用者可以是JSP,也可以是其他的类。
JavaBean组件由一些属性和操作这些属性的函数组成。
(4)Struts
Struts是一个基于J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的,是开发Web应用程序的开放源码框架。
Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大地节省了时间。
[10]
本系统选用Struts作为MVC的控制器,因为它足够成熟,用户群广泛。
虽然它也有缺点,但完全利用别的软件弥补,比如利用Sitemesh代替Titles等。
WebWork很优秀,但起步晚,用户群太小;JSF和Tapestry是重量级的MVC架构。
通过这个两个方面的对比即可得出Struts的两大优点,即用户群大且轻量级。
(5)数据库软件MySQL
MySQL由MySQLAB开发、发布和支持。
MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
(6)Web服务器Tomcat
Tomcat是Apache-Jarkarta的一个子项目,是一个免费的、开放源码的、支持JSP和Servlet技术的容器,它同时又是一个Web服务器软件。
Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
在本系统中我们选用稳定版本Tomcat进行开发。
[2]
(7)JDK
开发J2EE的系统,需要安装J2SE。
J2SE的JDK是开发任何Java系统必须安装的工具包,本系统选用JDK1.6版本进行开发。
3需求分析
3.1系统目标
“家庭理财系统”主要是一个财务方面的管理软件,它与管理信息系统的主要区别在于其收支、存取、债务报表管理等,这些都通常是管理信息系统所不具备的。
“家庭理财系统”的主要目的是通过对家庭的收入、支出、存取款等进行科学的管理,使家庭的财务管理更准确、更科学。
本文主要以此为主线实现了“家庭理财系统”。
本系统在实施后应能达到系统界面美观友好,操作简单易行,查询灵活方便,数据存储安全可靠,系统维护安全、方便、可靠,并能够满足实用性、先进性的要求的目标。
[14]
3.2构建要求
该系统在性能功能上应达到如下需求:
(1)正确性:
按照需求正确执行任务,完成各个模块的相应要求。
(2)易用性:
系统的使用界面简单明了,在开发过程中写的文档语言简练,语义清晰。
(3)安全性:
数据集中存放在数据库服务器。
(4)兼容性:
不易与其他软件起冲突。
3.3可行性分析
(1)经济和市场可行性分析
现在,人们的生活水平和文化素质普遍提高,并且开始注重生活质量。
随着市场经济的快速发展,观念的不断更新,个人理财意识普遍增强,特别是家庭理财意识得到很大发展,在意识上,一方面,人们对家庭和个人的各方面消费有想进行统计和分析的愿望,以便更好地做好家庭收支计划,和家庭财务管理。
另一方面,各种理财手段不断丰富,如何把各种理财手段统一起来,并且能更加方便的操作成为要求。
在物质基础上,计算机的应用开始普及,人们购置计算机和使用计算机的能力增强,人均计算机拥有量将快速提高。
这些条件说明,人们有购买一个家庭理财软件的要求。
在一个可接受的价格范围内,将购买这种软件,因此具有市场潜力。
开发一个小型财务软件,用快速开发工具可在几个月内由几个人的开发小组完成。
经过以上分析,开发一个通用型家庭理财软件具有在经济和市场可行性。
[8]
(2)技术可行性分析
开发一个通用型家庭理财软件,项目规模可以在适合大多数家庭的基础上进行开发。
技术上主要涉及界面设计和数据库设计。
在开发工具方面,可采用应用软件快速开发工具MyEclipse,它是一个高度集成化开发环境,具有丰富的组件,尤其在数据库开发方面具有很大优势。
MyEclipse能够支持大多数数据库的连接,通过数据库连接组件可方便快捷的实现数据库连接,并进行高效访问。
本系统为B/S结构。
也就是系统的的客户端采用的是浏览器,不用再另外编写客户端软件。
系统部署在TOMCAT下运行,数据库采用了MySQL。
系统采用MVC模式。
该模式是现在最流行的一种设计模式。
MVC包括3类对象,简单地说,MODEL是应用对象,VIEW是它在屏幕上的表示。
CONTROLLER定义用户界面输入的相应方式。
3.4非功能需求
非功能需求可以简单归纳为“URPS+”,即可用性(Usability)、可靠性(Reliability)、性能(Performance)、可支持性(Supportability)。
可用性是一个非常宽泛的概念,它泛指那些能让用户顺利使用系统的指标,包括易用性、准确性、安全性、兼容性等等,在家庭理财系统中这些显得尤为重要。
可靠性就是系统可以可靠运行,包括系统成熟度(数据吞吐量、并发用户量、连续不停机性能等)、数据容错度、系统易恢复性。
性能是非需求分析阶段最主要的分析内容。
用户对性能的要求没有止境。
性能受到许多因素的影响,包括业务需求、软件设计、数据库设计、系统部署方式,等等。
其中,业务需求和部署方式,对性能的影响是最大的。
系统部署架构对性能的影响也是巨大的。
最后一个内容,也是最容易被忽略的一个内容,就是可支持性。
可支持性,就是软件的可维护性、易变更性。
可支持性对于客户是透明的,不可见的,因此客户通常不关心这个。
4详细设计
4.1模块划分
消费模块的功能包括:
食品消费、衣着消费、家居消费、出行消费四部分;统计模块的功能包括:
当日汇总、月份汇总;收入模块的功能是对家庭的收入进行统计。
功能模表入下表
模块划分
功能分类
描述
消费模块
食品消费(0001)
完成日常生活中食品类商品消费的录入统计
衣着消费(0002)
完成日常生活中服装类商品消费的录入统计
家居消费(0003)
完成日常用品类商品消费的录入统计
出行消费(0004)
完成日常生活中出行消费(如私家车的费用、公交出行)的录入统计
统计模块
当日汇总(0001)
查询当日的各项记录
月份汇总(0002)
查询当月的各项记录
收入模块
收入管理
记录家庭不同的收入的记录
表4-1模块划分表
4.2业务流程
用户业务流程如下:
(1)用户登录之后,可以选择衣食住行的消费模块或者收入统计模块进行信息记录。
(2)用户输入信息后提交至后台写入的数据库中。
(3)用户通过统计模块中的查询功能,查询出当日,当月的收支信息。
4.3数据库设计
clothse表记录用户的衣食住行消费信息,表中有7个字段如下表所示:
id是流水号;username是用户名;type表示“衣食住行”分类;money是消费金额;name表示消费品名称;person记录的是消费者;time表示记录的时间。
字段
描述
类型
是否为空
id
流水号
varchar
否
username
用户名
varchar
否
person
消费者
int
是
time
记录时间
varchar
否
type
衣食住行分类
int
是
money
消费金额
float
否
name
消费品名称
varchar
否
表4-2clothse表
tbuser表记录用户的帐号信息和个人信息,表中有5个字段:
username是用户名;password是密码;sex是性别;age是年龄;realname是真实姓名。
字段
描述
类型
是否为空
username
用户名
varchar
否
password
密码
varchar
否
realname
真实姓名
varchar
是
sex
性别
varchar
是
表4-3tbuser表
money表记录用户的收入信息,表中有7个字段:
id是流水号;username是用户名;type表示收入类别分类,money是金额;time表示记录的时间。
字段
描述
类型
是否为空
id
流水号
varchar
否
username
用户名
varchar
否
person
名称
int
是
time
记录时间
varchar
否
type
衣食住行分类
int
是
money
金额
float
否
表4-4money表
5系统实现
5.1登录界面
系统登录界面如下图所示;本功能主要是获取登陆框和密码框获取登陆信息,点击登录按钮提交到Action中验证用户名和密码是否正确,若正确则跳转至主页面,不正确则提示登录失败。
注册链接至注册页面。
[3]
图5-1登录界面
Action配置信息如下,用户输入用户名个密码登录成功后跳转到系统主页面:
Action类:
publicStringlogin(){
UserDaodao=newUserDao();
Useruser=dao.getUserByNameAndPwd(userName,password);
if(user!
=null){
Map
session.put("user",user);
returnSUCCESS;
}
returnERROR;
}
Action类中调用的登录方法如下,获取JSP页面传来的用户名和密码,在数据库中的表tbuser中查询是否有对应的数据,若有则返回一个user对象:
publicUsergetUserByNameAndPwd(StringuserName,StringpassWord){
Useruser=null;
Stringsql="select*fromtbuserwhereusername='"+userName
+"'andpassword='"+passWord+"'";
try{
ResultSetrs=null;
st=con.prepareStatement(sql);
rs=st.executeQuery();
if(rs.next()){
user=newUser();
user.setUserName(rs.getString("userName"));
user.setPassword(rs.getString("passWord"));
}
rs.last();
}catch(SQLExceptione){
e.printStackTrace();
}
returnuser;
}
5.2用户注册
用户注册action方法如下,调用UserDao类中的adduser方法传入用户名和密码,成功返回success,失败返回error.
publicStringadduser(){
UserDaodao=newUserDao();
if(dao.adduser(userName,password)){
return"success";
}else{
returnERROR;
}
Boolean型注册方法:
获取JSP页面传来的用户名在表tbuser中查询是否有相同记录,若有相同记录则不执行插入语句返回一个flase,JSP页面显示用户名已经被使用,若无相同记录则执行插入语句。
publicbooleanadduser(StringuserName,StringpassWord){
Stringsql_select="select*fromtbuserwhereusername='"
+userName+"'";
try{
st=con.prepareStatement(sql_select);
ResultSetrs=st.executeQuery();
if(!
rs.next()){
Stringsql_insert="insertintotbuser(username,password,sex,age,realname)values"
+"('"
+userName
+"','"
+passWord
+"',null,null,null)";
PreparedStatementpst=null;
pst=con.prepareStatement(sql_insert);
pst.executeUpdate();
pst.close();
returntrue;
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnfalse;
}
5.3主菜单界面
主菜单界面包含消费类别选择、收入记录、收支情况汇总,其中费类别选择包括四个选项的记录和每日每月的汇总信息,收入记录包括收入记录和记录汇总。
图5-2主界面
在上述JSP页面中加入如下JAVA代码,用getParameter方法获取当前时间用户在页面中显示获取用户对象在数据库中查询该用户记录的信息:
<%
request.setCharacterEncoding("GBK");
StringrecTime=request.getParameter("cTime");
if(recTime==null||"".equals(recTime)){
Datendate=newDate();
SimpleDateFormats=newSimpleDateFormat("yyyy-MM-dd");
recTime=s.format(ndate);
}
MyDAOdao=newMyDAO();
Useruser=(User)session.getAttribute("user");
clothse[]mo=dao.getMyTableClothseResults(user.getUserName());
%>
获取数据的代码如下,获取JSP页面传来的用户名,在数据库中查询,返回clothse[]对象:
publicclothse[]getMyTableClothseResults(Stringusername)
throwsSQLException
{
st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSetrs=st.executeQuery("select*fromclothsewhereusername='"+username+"'andtype=1");
rs.last();
introw=rs.getRow();
clothse[]ms=newclothse[row];
rs.beforeFirst();
inti=0;
while(rs.next()){
ms[i]=newclothse();
ms[i].setId(rs.getInt
(1));
ms[i].setUsername(rs.getString
(2));
ms[i].setName(rs.getString(3));
ms[i].setPerson(rs.getInt(4));
ms[i].setMoney(rs.getFloat(5));
ms[i].setType(rs.getInt(6));
ms[i].setTime(rs.getString(7));
++i;
}
rs.close();
st.close();
returnms;
}
插入着装消费信息的Action配置,插入成功返回着装消费记录页面,插入失败则提示插入失败。
添加Action,在addClothse方法中调用Dao类中的addclthse方法传入用户名,时间金额等信息:
publicStringaddClothse(){
Calendarc=Calendar.getInstance();
Datedate=c.getTime();
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SSH 框架 家庭理财 系统