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 分钟前
Java基础之IO流
java·开发语言
小菜yh3 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.9 分钟前
Java键盘输入语句
java·开发语言
浅念同学9 分钟前
算法.图论-并查集上
java·算法·图论
立志成为coding大牛的菜鸟.22 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞23 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
Microsoft Word23 分钟前
数据库系统原理(第一章 数据库概述)
数据库·oracle
华为云开源33 分钟前
openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才
数据库·云原生·开源
爱上语文2 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
serve the people2 小时前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端