基于SSM框架下的JAVA人财务管理
最近了解了个人财务管理项目,在这个平台记录一下这个个人财务管理项目,方便以后再次使用或学习的时候能够及时的翻阅。在完成这个项目的时候,考虑了很多框架。最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点。此框架能在MYECLIPSE开发工具中完美的编写和运行,个人财务管理为一个 后台项目。这个项目的描述是这样的:在这个数据即是资源的时代,基于账户管理的个人财务管理应用将成为互联网金融大数据时代新的发展方向。本文阐述了个人财务管理的概念及意义,对目前各种可行的服务模式进行了比对,并在此基础上对其商业模式进行了探讨。个人财务管理(Money Watcher)是一款日常个人简单财务管理软件,对您的日常简单的支出与收入进行统计汇总,通过对各种开支与收入的数据分析。帮助您合理化您的日常消费。
在对个人财务管理项目进行需求分析的时候,得出系统的登录角色包括了管理员。对应用户可以通过登录自己的账号,进行入系统。系统对不同角色拥有不同权限。
总结得出该系统所有数据为:管理员(admin)、收入(shouru)、支出(zhichu)、结余(jieyu)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
收入表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 收入id gongzishouru | VARCHAR(255) | | 工资收入 licaishouru | VARCHAR(255) | | 理财收入 qitashouru | VARCHAR(255) | | 其他收入
支出表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 支出id shenghuokaizhi | VARCHAR(255) | | 生活开支 yulekaizhi | VARCHAR(255) | | 娱乐开支 xuexikaizhi | VARCHAR(255) | | 学习开支 qitakaizhi | VARCHAR(255) | | 其他开支
结余表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 结余id shangyuejieyu | VARCHAR(255) | | 上月结余 benyuejieyu | VARCHAR(255) | | 本月结余 yuemohuizong | VARCHAR(255) | | 月末汇总
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for gggerencaiwuguanli -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_shouru`; CREATE TABLE `t_shouru` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '收入id',`gongzishouru` VARCHAR(255) DEFAULT NULL COMMENT '工资收入',`licaishouru` VARCHAR(255) DEFAULT NULL COMMENT '理财收入',`qitashouru` VARCHAR(255) DEFAULT NULL COMMENT '其他收入',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='收入'; -- ---------------------------- DROP TABLE IF EXISTS `t_zhichu`; CREATE TABLE `t_zhichu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '支出id',`shenghuokaizhi` VARCHAR(255) DEFAULT NULL COMMENT '生活开支',`yulekaizhi` VARCHAR(255) DEFAULT NULL COMMENT '娱乐开支',`xuexikaizhi` VARCHAR(255) DEFAULT NULL COMMENT '学习开支',`qitakaizhi` VARCHAR(255) DEFAULT NULL COMMENT '其他开支',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='支出'; -- ---------------------------- DROP TABLE IF EXISTS `t_jieyu`; CREATE TABLE `t_jieyu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '结余id',`shangyuejieyu` VARCHAR(255) DEFAULT NULL COMMENT '上月结余',`benyuejieyu` VARCHAR(255) DEFAULT NULL COMMENT '本月结余',`yuemohuizong` VARCHAR(255) DEFAULT NULL COMMENT '月末汇总',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='结余';
添加收入模块:
系统中存在添加收入功能,通过点击添加收入可以跳转到该功能模块,在该功能模块中,填写对应的收入信息。收入包含信息工资收入,理财收入,其他收入,填写完所有信息后,通过post方法将数据提交到tianjiashouru.action中,该地址将在服务器中shouruController类中的tianjiashouruact方法中进行响应。响应结果为,获取所有的收入信息,封装一个shouru类,使用shouruController类中定义的shourudao的insert方法,将收入数据插入到数据库的shouru表中。并给出用户提示信息,添加收入成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:
通过shourudao的insert方法将页面传输的收入添加到数据库中 shourudao.insert(shouru);
将添加收入成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加收入成功");
返回收入管理界面
return "forward:/tianjiashouru.action";
查询收入模块:
在后台shouruguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法
进行循环展示到table中。完成收入查询操作。具体代码如下:
生成收入样例类,通过example定义查询条件 ShouruExample example = new ShouruExample();
通过shourudao的selectByExample方法查询出所有的收入信息 List shouruall = shourudao.selectByExample(example);
将收入信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("shouruall", shouruall);
返回收入管理界面
return "forward:/shouruguanli.action";
修改收入模块:
在页面填写完修改信息后,点击修改按钮,将数据提交到xiugaishouru中,封装为一个收入
,使用update方法修改该收入信息,将数据同步到数据库,完成修改操作。
定义修改成功提示信息,修改收入成功,并保存到request中具体代码如下:
通过shourudao的修改方法根据id修改对应的收入 shourudao.updateByPrimaryKeySelective(shouru);
将修改收入成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改收入信息成功");
返回收入管理界面
return "forward:/shouruguanli.action";
删除收入模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该收入
的id上传到服务器中,在服务器中通过shouruController类中的shanchushouru进行接收,之后调用shouruMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过shourudao的删除方法根据id删除对应的收入 shourudao.deleteByPrimaryKey(id);
将删除收入成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除收入成功");
返回收入管理界面
return "forward:/shouruguanli.action";