一、源码特点
   SSM  图书捐赠网站系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库
 ,系统主要采用B/S模式开发。
ssm图书捐赠系统1
 前段主要技术 html.css jquery
 后端主要技术 SSM
 数据库 mysql
 开发工具 eclipse  JDK1.8 TOMCAT 8.5
二、功能介绍
 1.需要用户实现登录,注册功能,(受助人,志愿者)
 2.还有图书的管理(增删改查)和图书的信息
 3.用户的管理(普通用户和管理员用户以及用户的增删改查)
 用户如果忘记密码,管理员可以帮用户初始化固定密码。
 普通用户就是志愿者用户还有需要帮助人的基本信息,个人和团体也可以
 在网站前台报名注册,管理员审核通过之后才能登录,没有审核通过的无效
 管理员可以根据条件对系统志愿者进行搜索,按照地区统计,职业统计
 4.还有赠书管理,捐赠的书籍信息
 5.受助信息管理,受助人的基本信息,需要的书籍信息,受助人发布受助信息必须要
 管理员审核才能发布,否则无效
 6.救助管理(发布受助人需要书籍的详细信息,在前台公开展示并接受
 系统中其他志愿者和爱心人士的捐赠)
 7.留言管理,同样也是需要审核
 9.审核系统(志愿者注册后审核通过就可以参加救助捐赠书籍,发布救助捐赠信息,参加活动,审核志愿者上传的图书是否完好)
数据库设计
(1)字典信息表如表4.1所示:
表4.1 字典信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | zdid | INTEGER | 11 | 是 | 字典编号 | 
| 2 | zd | VARCHAR | 40 | 否 | 字典 | 
| 3 | lx | VARCHAR | 40 | 否 | 类型 | 
(2)用户信息表如表4.2所示:
表4.2 用户信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | yhid | INTEGER | 11 | 是 | 用户编号 | 
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 | 
| 3 | mm | VARCHAR | 40 | 否 | 密码 | 
| 4 | xm | VARCHAR | 40 | 否 | 姓名 | 
| 5 | qx | VARCHAR | 40 | 否 | 权限 | 
| 6 | lxdh | VARCHAR | 40 | 否 | 联系电话 | 
| 7 | lxdz | VARCHAR | 40 | 否 | 联系地址 | 
| 8 | zt | VARCHAR | 40 | 否 | 状态 | 
| 9 | dq | VARCHAR | 40 | 否 | 地区 | 
| 10 | zy | VARCHAR | 40 | 否 | 职业 | 
(3)图书信息表如表4.3所示:
表4.3 图书信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | tsid | INTEGER | 11 | 是 | 图书编号 | 
| 2 | sm | VARCHAR | 40 | 否 | 书名 | 
| 3 | sh | VARCHAR | 40 | 否 | 书号 | 
| 4 | tp | VARCHAR | 40 | 否 | 图片 | 
| 5 | js | VARCHAR | 40 | 否 | 介绍 | 
| 6 | zz | VARCHAR | 40 | 否 | 作者 | 
| 7 | cbs | VARCHAR | 40 | 否 | 出版社 | 
(4)捐书信息表如表4.4所示:
表4.4 捐书信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | jsxxid | INTEGER | 11 | 是 | 捐书信息编号 | 
| 2 | bt | VARCHAR | 40 | 否 | 标题 | 
| 3 | ts | VARCHAR | 40 | 否 | 图书 | 
| 4 | sl | VARCHAR | 40 | 否 | 数量 | 
| 5 | sm | VARCHAR | 40 | 否 | 说明 | 
| 6 | yh | VARCHAR | 40 | 否 | 用户 | 
| 7 | zt | VARCHAR | 40 | 否 | 状态 | 
| 8 | sfwh | VARCHAR | 40 | 否 | 是否完好 | 
(5)受助信息表如表4.5所示:
表4.5 受助信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | szxxid | INTEGER | 11 | 是 | 受助信息编号 | 
| 2 | bt | VARCHAR | 40 | 否 | 标题 | 
| 3 | ts | VARCHAR | 40 | 否 | 图书 | 
| 4 | sl | VARCHAR | 40 | 否 | 数量 | 
| 5 | sm | VARCHAR | 40 | 否 | 说明 | 
| 6 | yh | VARCHAR | 40 | 否 | 用户 | 
| 7 | zt | VARCHAR | 40 | 否 | 状态 | 
(6)参加活动信息表如表4.6所示:
表4.6 参加活动信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | cjhdid | INTEGER | 11 | 是 | 参加活动编号 | 
| 2 | ts | VARCHAR | 40 | 否 | 活动 | 
| 3 | sl | VARCHAR | 40 | 否 | 数量 | 
| 4 | yh | VARCHAR | 40 | 否 | 用户 | 
| 5 | sm | VARCHAR | 40 | 否 | 说明 | 
| 6 | cjsj | VARCHAR | 40 | 否 | 参加时间 | 
(7)救助捐赠数据信息表如表4.7所示:
表4.7 救助捐赠数据信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | 
| 1 | jzjzxxid | INTEGER | 11 | 是 | 救助捐赠信息编号 | 
| 2 | bt | VARCHAR | 40 | 否 | 标题 | 
| 3 | nr | VARCHAR | 40 | 否 | 内容 | 
| 4 | fbsj | VARCHAR | 40 | 否 | 发布时间 | 
系统ER图

代码设计
@RequestMapping(value="/add")
	public String add(jzjzxx jzjzxx,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");
		map.put("jzjzxxid", jzjzxx.getJzjzxxid());//救助捐赠信息编号
		map.put("bt", jzjzxx.getBt());//标题
		map.put("nr", jzjzxx.getNr());//内容
		map.put("fbsj", jzjzxx.getFbsj());//发布时间
		String jzjzxxid=(String)jzjzxx.getJzjzxxid();//救助捐赠信息编号
		String bt=(String)jzjzxx.getBt();//标题
		String nr=(String)jzjzxx.getNr();//内容
		String fbsj=(String)jzjzxx.getFbsj();//发布时间
		jzjzxxdao.save(map);
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "jzjzxx/jzjzxxadd";
	}
	
	/**删除 
	 * 
	 */
	@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>");
		jzjzxxdao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改jzjzxx信息
	 */
	@RequestMapping(value="/update")
	public String update(jzjzxx jzjzxx,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("jzjzxxid", jzjzxx.getJzjzxxid());//救助捐赠信息编号
		map.put("bt", jzjzxx.getBt());//标题
		map.put("nr", jzjzxx.getNr());//内容
		map.put("fbsj", jzjzxx.getFbsj());//发布时间
		String jzjzxxid=(String)jzjzxx.getJzjzxxid();//救助捐赠信息编号
		String bt=(String)jzjzxx.getBt();//标题
		String nr=(String)jzjzxx.getNr();//内容
		String fbsj=(String)jzjzxx.getFbsj();//发布时间
		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		jzjzxxdao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 查询jzjzxx信息
	 */
	@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=jzjzxxdao.select(Integer.parseInt(keyid));
		request.setAttribute("jzjzxxid", list.get(0).get("jzjzxxid"));//救助捐赠信息编号
		request.setAttribute("bt", list.get(0).get("bt"));//标题
		request.setAttribute("nr", list.get(0).get("nr"));//内容
		request.setAttribute("fbsj", list.get(0).get("fbsj"));//发布时间
		
		return "jzjzxx/jzjzxxmodify";
	}mybatis 配置文件
<insert id="insertjzjzxx"  parameterType="java.util.Map">
 insert  into  jzjzxx(bt,nr,fbsj)  values(#{bt},#{nr},#{fbsj})
</insert>
<delete id="deljzjzxx" parameterType="int">
 delete  from  jzjzxx where jzjzxxid=#{jzjzxxid}
</delete>
<update id="updatejzjzxx" parameterType="java.util.Map">
update jzjzxx set bt=#{bt},nr=#{nr},fbsj=#{fbsj} where jzjzxxid=#{jzjzxxid}
</update>
<!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectjzjzxx"  parameterType="int" resultType="java.util.Map">
  select  * from jzjzxx where jzjzxxid=#{jzjzxxid}
</select>三、注意事项
 1、管理员账号:admin密码:admin 数据库配置文件datasource.properties
 2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
 3、数据库文件名是jspssmsxca.sql 系统名称ssmsxca
 4、地址:http://127.0.0.1:8080/ssmsxca/qt/index.jsp
四 系统实现




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
















