SSM图书捐赠网站系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

news2024/11/26 18:48:29

一、源码特点
  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

四 系统实现

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1257559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 Docker 核心原理:Namespace、Cgroups 和 Rootfs

来自&#xff1a;探索云原生 https://www.lixueduan.com 原文&#xff1a;https://www.lixueduan.com/posts/docker/03-container-core/ 通过这篇文章你可以了解到 Docker 容器的核心实现原理&#xff0c;包括 Namespace、Cgroups、Rootfs 等三个核心功能。 后续文章会演示如…

k8s中安装consul集群

一、准备知识 headless services一般结合StatefulSet来部署有状态的应用&#xff0c;比如kafka集群&#xff0c;mysql集群&#xff0c;zk集群等&#xff0c;也包括本文要部署的consul集群。 0、consul集群 consul集群的分布式协议算法采用的是raft协议&#xff0c;这意味着必…

UI彩虹外链网盘系统整站源码/PHP网盘与外链分享程序/整站+模版文件

源码简介&#xff1a; 全新UI彩虹外链网盘系统源码&#xff0c;它是PHP网盘与外链分享程序&#xff0c;提供了整站模版文件&#xff0c;前后端美化模板。 彩虹外链网盘美化模板是一款专为PHP网盘和外链分享程序设计的模板。它具备多种功能&#xff0c;包括支持所有格式文件的…

记录本地与服务器之间数据传输方法(上传、下载文件)

文章目录 一、使用scp命令实现参数说明示例说明 二、使用工具实现windows系统苹果系统如有启发&#xff0c;可点赞收藏哟~ 一、使用scp命令实现 scp 是 secure copy &#xff08;安全复制&#xff09;的缩写, scp 是基于 ssh 登陆进行安全的远程文件拷贝命令。相当于 cp 命令 …

ChatGPT进阶:提示工程的神秘面纱与实战指南

文章目录 一、提示工程的概念与原理二、提示工程的实践方法三、提示工程的挑战与展望四、实战案例分析总结《ChatGPT进阶&#xff1a;提示工程入门》内容简介作者简介陈颢鹏&#xff1a;李子菡&#xff1a; 目录获取方式 在人工智能领域&#xff0c;对话系统已经成为了一个热门…

数智赋能 锦江汽车携手苏州金龙打造高质量盛会服务

作为一家老牌客运公司&#xff0c;成立于1956年的上海锦江汽车服务有限公司&#xff08;以下简称锦江汽车&#xff09;&#xff0c;拥有1200多辆大巴和5000多辆轿车&#xff0c;是上海乃至长三角地区规模最大的专业旅游客运公司。面对客运市场的持续萎缩&#xff0c;锦江汽车坚…

不用再羡慕“SpaceX“ 民营星际荣耀打造国产可回收火箭双曲线二号

大家好&#xff0c;我是极智视界&#xff0c;欢迎关注我的公众号&#xff0c;获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」&#xff0c;星球内有超多好玩的项目实战源码和资源下载&#xff0c;链接&#xff1a;https://t.zsxq.com/0aiNxERDq 大家似乎习惯了对马…

PDF不小心关闭没保存?这4个方法教你拯救文件!

“我刚刚在查看一个PDF文件&#xff0c;但是一不小心我就把它关闭了&#xff0c;而且我还忘记保存了。这可怎么办呢&#xff1f;PDF不小心关闭没保存应该怎么解决呢&#xff1f;还有办法恢复吗&#xff1f;” PDF文档是我们日常工作和学习中常用的文件格式&#xff0c;但有时候…

QQ录屏保存到哪了?教你快速找到保存位置

qq录屏是许多用户常用的屏幕录制工具&#xff0c;可是一旦录制结束&#xff0c;许多人不清楚如何找到和管理录制的视频文件。那么&#xff0c;您知道qq录屏保存到哪了吗&#xff1f;本文将深入研究qq录制视频功能&#xff0c;以帮助您了解如何存储和管理这些重要的录制视频文件…

【Android Gradle】之一小时 Gradle及 wrapper 入门

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

【算法萌新闯力扣】:合并两个有序链表

力扣题目&#xff1a;合并两个有序链表 开篇 今天是备战蓝桥杯的第24天及算法村开营第2天。根据算法村的讲义&#xff0c;来刷链表的相关题目。今天要分享的是合并两个有序链表。 题目链接: 21.合并两个有序链表 题目描述 代码思路 通过创建一个新链表&#xff0c;然后遍历…

DEM分析

一、实验名称&#xff1a; DEM分析 二、实验目的&#xff1a; 通过本实验练习&#xff0c;掌握DEM的建立与应用基本方法。 三、实验内容和要求&#xff1a; 实验内容&#xff1a; 利用ARCGIS软件相关分析工具及实验数据&#xff0c;创建DEM&#xff0c;并计算相应坡度的区…

Android 单元测试初体验

Android 单元测试初体验 前言一、单元测试是什么&#xff1f;二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候&#xff0c;老师敢教学进度&#xff0c;翻到单元测试这一章节的时候提了两句&#xff0c;没有把单元测试当重点讲&#xff0c;只…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑碳排放分摊的综合能源服务商交易策略》

这篇文章的标题表明它将讨论一个关于综合能源服务商交易策略的主题&#xff0c;而在这个策略中&#xff0c;特别考虑了碳排放分摊的因素。以下是对标题中各关键词的解读&#xff1a; 综合能源服务商&#xff1a; 这指的是在能源领域提供多种服务的企业或组织&#xff0c;可能涵…

https到底把什么加密了?

首先直接说结论&#xff0c; https安全通信模式&#xff0c;是使用TLS加密传输所有的http协议。再重复一遍&#xff0c;是所有&#xff01; 通常将TLS加密传输http这个通信过程称为https&#xff0c;如果使用协议封装的逻辑结构来表达就是&#xff1a; IP TCP TLS 【 HTTP 】…

算法效率的度量

算法效率的度量通常是通过时间复杂度和空间复杂度来描述的。 一、时间复杂度 算法中所有语句的执行次数之和为T(n)&#xff0c;它是算法问题规模n的函数&#xff0c;时间复杂度主要分析T(n)的数量级。 分类 1. 最好时间复杂度&#xff1a;最好情况下&#xff0c;算法的时间…

python subprocess

查看python官方文档&#xff1a;最全 p subprocess.Popen([rpng2bdf.exe,[r-o .\tst\myfont.bdf -f myfont -e 65 tst\*.png]],stdoutsubprocess.PIPE,stderr subprocess.PIPE) out,err p.communicate() print(out) 注意&#xff0c;如何将shell命令分解为参数序列可能并…

HT97226 免输出电容立体声耳机放大器的应用与曲线

HT97226应用&#xff1a; ・耳机 ・多媒体音频接口 ・机顶盒 ・ 蓝光/DVD播放器 ・LCD电视 ・音频消费电子产品 HT97226应用图于曲线&#xff1a; HT97226是一款差分输入/单端输入、可直接输出驱动的耳机放大器。5V供…

CentOS添加开机启动

1.编写项目启动脚本&#xff08;run.sh&#xff09; #!/bin/bash-切换到程序所在路径 cd /home/cavs_install/app/cavs-admin/target/ # 等待其他组件启动完毕后再启动本项目&#xff08;如果不需要等待&#xff0c;本步骤可省略&#xff09; sleep 300 # 实际启动命令 nohup …

Python Xorbits库:实现无限可能的编程旅程

概要 Python Xorbits是一个强大而多功能的开源Python库&#xff0c;为开发者提供了实现创新和复杂计算的能力。它提供了各种功能和工具&#xff0c;帮助开发者在编程旅程中探索无限可能。本文将详细介绍Python Xorbits的用途和使用教程&#xff0c;帮助读者了解和掌握这个令人…