java SSM家庭财务管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点

java SSM家庭财务管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代

码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

java ssm 家庭财务管理系统

二、功能介绍

通过对需求进行分析,家庭财务管理系统包括用户信息管理、基础数据信息管理、收支信息管理、项目信息管理、借还款信息管理。

1)用户管理模块笔记用户信息该模块主要用于系统的用户管理,其中主要包括系统用户的登录和注册以及管理员添加用户、用户编辑个人信息等部分。

2)收支管理模块

家庭管理员登陆进入家庭财务管理系统可以根据实际需要添加收入信息、编辑收入信息、添加支出信息、编辑支出信息,删除信息

3)存储管理模块

家庭系统管理员进入家庭财务管理系统可以根据实际需要选择定期存储信息和活期存储信息管理。

4)借还款管理模块

家庭系统管理员进入家庭财务管理系统可以根据实际需要点击添加借入、添加借出进入相应页面进行管理。

5)基本数据管理模块

在基本数据管理模块中,管理员登陆财务管理系统可以对收入、支出、家庭信息、家庭称呼信息、家庭活期账号信息、家庭定期账号信息等基本数据进行分析管理。

数据库设计

(1)用户信息表如表3.1所示:

表3.1 用户信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | yhid | INTEGER | 11 | 是 | 用户编号 |
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
| 6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
| 7 | qx | VARCHAR | 40 | 否 | 权限 |
| 8 | ch | VARCHAR | 40 | 否 | 称呼 |

(2)项目信息表如表3.2所示:

表3.2 项目信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | xmid | INTEGER | 11 | 是 | 项目编号 |
| 2 | xm | VARCHAR | 40 | 否 | 项目 |
| 3 | lx | VARCHAR | 40 | 否 | 类型 |

(3)收入信息表如表3.3所示:

表3.3收入信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | srid | INTEGER | 11 | 是 | 收入编号 |
| 2 | rq | VARCHAR | 40 | 否 | 日期 |
| 3 | xm | VARCHAR | 40 | 否 | 项目 |
| 4 | je | VARCHAR | 40 | 否 | 金额 |
| 5 | yh | VARCHAR | 40 | 否 | 用户 |
| 6 | sj | VARCHAR | 40 | 否 | 时间 |

(4)支出信息表如表3.4所示:

表3.4 支出信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | zcid | INTEGER | 11 | 是 | 支出编号 |
| 2 | rq | VARCHAR | 40 | 否 | 日期 |
| 3 | xm | VARCHAR | 40 | 否 | 项目 |
| 4 | je | VARCHAR | 40 | 否 | 金额 |
| 5 | yh | VARCHAR | 40 | 否 | 用户 |
| 6 | sj | VARCHAR | 40 | 否 | 时间 |

(5)借款信息表如表3.5所示:

表3.5 借款信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | jkid | INTEGER | 11 | 是 | 借款编号 |
| 2 | rq | VARCHAR | 40 | 否 | 日期 |
| 3 | sm | VARCHAR | 40 | 否 | 说明 |
| 4 | jkje | VARCHAR | 40 | 否 | 借款金额 |
| 5 | jkr | VARCHAR | 40 | 否 | 借款人 |
| 6 | jksj | VARCHAR | 40 | 否 | 借款时间 |

(6)还款信息表如表3.6所示:

表3.6 还款信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | hkid | INTEGER | 11 | 是 | 还款编号 |
| 2 | rq | VARCHAR | 40 | 否 | 日期 |
| 3 | sm | VARCHAR | 40 | 否 | 说明 |
| 4 | hkje | VARCHAR | 40 | 否 | 还款金额 |
| 5 | hkr | VARCHAR | 40 | 否 | 还款人 |
| 6 | hksj | VARCHAR | 40 | 否 | 还款时间 |

(7)卡折信息表如表3.7所示:

表3.7 卡折信息表

|----|--------|---------|----|----|--------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | kzxxid | INTEGER | 11 | 是 | 卡折信息编号 |
| 2 | mc | VARCHAR | 40 | 否 | 名称 |
| 3 | kh | VARCHAR | 40 | 否 | 卡号 |
| 4 | mm | VARCHAR | 40 | 否 | 密码 |
| 5 | yh | VARCHAR | 40 | 否 | 用户 |
| 6 | djsj | VARCHAR | 40 | 否 | 登记时间 |

系统ER图

系统功能图

控制类

@RequestMapping(value="/add")
	public String add(jiekuan jiekuan,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("jkid", jiekuan.getJkid());//借款编号

		map.put("rq", jiekuan.getRq());//日期

		map.put("sm", jiekuan.getSm());//说明

		map.put("jkje", jiekuan.getJkje());//借款金额

		map.put("jkr", jiekuan.getJkr());//借款人

		map.put("jksj", jiekuan.getJksj());//借款时间



		String jkid=(String)jiekuan.getJkid();//借款编号

		String rq=(String)jiekuan.getRq();//日期

		String sm=(String)jiekuan.getSm();//说明

		String jkje=(String)jiekuan.getJkje();//借款金额

		String jkr=(String)jiekuan.getJkr();//借款人

		String jksj=(String)jiekuan.getJksj();//借款时间

		jiekuandao.save(map);
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "jiekuan/jiekuanadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		jiekuandao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改jiekuan信息
	 */
	@RequestMapping(value="/update")
	public String update(jiekuan jiekuan,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("jkid", jiekuan.getJkid());//借款编号

		map.put("rq", jiekuan.getRq());//日期

		map.put("sm", jiekuan.getSm());//说明

		map.put("jkje", jiekuan.getJkje());//借款金额

		map.put("jkr", jiekuan.getJkr());//借款人

		map.put("jksj", jiekuan.getJksj());//借款时间



		String jkid=(String)jiekuan.getJkid();//借款编号

		String rq=(String)jiekuan.getRq();//日期

		String sm=(String)jiekuan.getSm();//说明

		String jkje=(String)jiekuan.getJkje();//借款金额

		String jkr=(String)jiekuan.getJkr();//借款人

		String jksj=(String)jiekuan.getJksj();//借款时间

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		jiekuandao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 查询jiekuan信息
	 */
	@RequestMapping(value="/modify")
	public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
		list=jiekuandao.select(Integer.parseInt(keyid));
		request.setAttribute("jkid", list.get(0).get("jkid"));//借款编号

		request.setAttribute("rq", list.get(0).get("rq"));//日期

		request.setAttribute("sm", list.get(0).get("sm"));//说明

		request.setAttribute("jkje", list.get(0).get("jkje"));//借款金额

		request.setAttribute("jkr", list.get(0).get("jkr"));//借款人

		request.setAttribute("jksj", list.get(0).get("jksj"));//借款时间

		
		return "jiekuan/jiekuanmodify";
	}

持久层类

 */
	public void save(Map<String, Object> map) {
		sqlSession.insert("com.jiekuan.insertjiekuan", map);
		
	}
	/**
	 * 删除aa
	 * @param id
	 */
	public void del(Integer id) {
		sqlSession.delete("com.jiekuan.deljiekuan", id);
	}

	/**
	 * 修改jiekuan信息
	 * @param map
	 */
	public void update(Map<String, Object> map) {
		sqlSession.update("com.jiekuan.updatejiekuan", map);
	}

	/**
	 * 查询jiekuan信息
	 * @param id
	 * @return 
	 */
	public List<Map<String, Object>> select(Integer id) {
		return sqlSession.selectList("com.jiekuan.selectjiekuan", id) ; 
	}
	/**
	 * 查询jiekuan信息
	 * 
	 * @return 
	 */
	public List<Map<String, Object>> selectAll(Map<String, Object> map) {
		return sqlSession.selectList("com.jiekuan.selectall", map) ; 
	}

mybaits类

<insert id="insertjiekuan"  parameterType="java.util.Map">
 insert  into  jiekuan(rq,sm,jkje,jkr,jksj)  values(#{rq},#{sm},#{jkje},#{jkr},#{jksj})
</insert>

<delete id="deljiekuan" parameterType="int">
 delete  from  jiekuan where jkid=#{jkid}
</delete>

<update id="updatejiekuan" parameterType="java.util.Map">
update jiekuan set rq=#{rq},sm=#{sm},jkje=#{jkje},jkr=#{jkr},jksj=#{jksj} where jkid=#{jkid}
</update>

<!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectjiekuan"  parameterType="int" resultType="java.util.Map">
  select  * from jiekuan where jkid=#{jkid}
</select>

<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">
  select  * from jiekuan where 1=1
<if test=" null != rq and rq!=''" >
 and rq = #{rq}
</if>
<if test=" null != sm and sm!=''" >
 and sm = #{sm}
</if>
<if test=" null != jkje and jkje!=''" >
 and jkje = #{jkje}
</if>
<if test=" null != jkr and jkr!=''" >
 and jkr = #{jkr}
</if>
<if test=" null != jksj and jksj!=''" >
 and jksj = #{jksj}
</if>

</select>

三、注意事项

1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties

2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

3、数据库文件名是jspssmjtcw.sql,系统名称ssmjtcw

4、系统首页地址:http://127.0.0.1:8080/ssmjtcw/login.jsp

四 系统实现

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

相关推荐
测开小菜鸟1 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
Ai 编码助手2 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
P.H. Infinity2 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天2 小时前
java的threadlocal为何内存泄漏
java
陈燚_重生之又为程序员3 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle3 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻3 小时前
MySQL排序查询
数据库·mysql
萧鼎3 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^3 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx