SSM校园学习助手系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点
  SSM 校园学习助手系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。

ssm校园学习助手系统


前段主要技术 html.css jquery
后端主要技术 SSM
数据库 mysql
开发工具 eclipse  JDK1.8 TOMCAT 8.5

二、功能介绍

前台功能:
系统首页浏览
训练浏览、提交申请、查看申请信息
经历浏览、提交评论、查看评论
用户注册、登录、个人信息修改
后台功能:
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)关注管理:对关注信息进行添加、删除、修改和查看
(4)类型管理:对类型信息进行添加、删除、修改和查看
(5)训练营管理:对训练营信息进行添加、删除、修改和查看
(6)申请管理:对申请信息进行删除、修改和查看
(7)报名管理:对报名信息进行删除、修改和查看
(8)经历管理:对经历信息进行添加、删除、修改和查看
(9)评论管理:对评论信息进行删除、修改和查看
(10)用户登录、个人信息修改

数据库设计

[表jiaoshi] 教师列属性表格

序号字段名称数据类型长度主键描述
1jsidINTEGER11教师编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址

[表banji] 班级列属性表格

序号字段名称数据类型长度主键描述
1bjidINTEGER11班级编号
2bjVARCHAR40班级

[表xuesheng] 学生列属性表格

序号字段名称数据类型长度主键描述
1xsidINTEGER11学生编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址
7bjVARCHAR40班级

[表gly] 管理员列属性表格

序号字段名称数据类型长度主键描述
1glyidINTEGER11管理员编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名

[表xywh] 校园文化列属性表格

序号字段名称数据类型长度主键描述
1xywhidINTEGER11校园文化编号
2btVARCHAR40标题
3nrVARCHAR40内容
4fbsjVARCHAR40发布时间

[表tongzhi] 通知列属性表格

序号字段名称数据类型长度主键描述
1tzidINTEGER11通知编号
2btVARCHAR40标题
3nrVARCHAR40内容
4fbsjVARCHAR40发布时间

[表liuyan] 留言列属性表格

序号字段名称数据类型长度主键描述
1lyidINTEGER11留言编号
2lyVARCHAR40留言
3yhVARCHAR40用户
4sjVARCHAR40时间
5jsyhVARCHAR40接收用户

代码设计 

	@RequestMapping(value="/add")
	public String add(liuyan liuyan,HttpServletRequest request){//添加方法
		Map<String,Object> map= new HashMap<String,Object>();//初始化对象
		//String name=(String)request.getParameter("name");

		map.put("lyid", liuyan.getLyid());//留言编号

		map.put("ly", liuyan.getLy());//留言

		map.put("yh", liuyan.getYh());//用户

		map.put("sj", liuyan.getSj());//时间

		map.put("jsyh", liuyan.getJsyh());//接收用户



		String lyid=(String)liuyan.getLyid();//留言编号

		String ly=(String)liuyan.getLy();//留言

		String yh=(String)liuyan.getYh();//用户

		String sj=(String)liuyan.getSj();//时间

		String jsyh=(String)liuyan.getJsyh();//接收用户

		liuyandao.save(map);//调用 add方法 保存liuyan 数据
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "liuyan/liuyanadd";
	}
	
	/**删除 liuyan
	 * 
	 */
	@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");//request 方式获得主键id
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		liuyandao.del(id);//调用 删除方法
		return selectall(null,map,request);
	}
	/**
	 * 修改liuyan信息
	 */
	@RequestMapping(value="/update")
	public String update(liuyan liuyan,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();//初始化对象
		map.put("lyid", liuyan.getLyid());//留言编号

		map.put("ly", liuyan.getLy());//留言

		map.put("yh", liuyan.getYh());//用户

		map.put("sj", liuyan.getSj());//时间

		map.put("jsyh", liuyan.getJsyh());//接收用户

		map.put("hf", liuyan.getHf());//接收用户

		String lyid=(String)liuyan.getLyid();//留言编号

		String ly=(String)liuyan.getLy();//留言

		String yh=(String)liuyan.getYh();//用户

		String sj=(String)liuyan.getSj();//时间

		String jsyh=(String)liuyan.getJsyh();//接收用户

		request.setAttribute("msg", "<script>alert('操作成功');</script>");
		liuyandao.update(map);//执行update 方法
		return selectall(null,map1,request);
	}
	/**
	 * 查询liuyan信息
	 */
	@RequestMapping(value="/modify")
	public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");//request 方式获得主键id
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象
		list=liuyandao.select(Integer.parseInt(keyid));//根据id返回 liuyan对象数据
		request.setAttribute("lyid", list.get(0).get("lyid"));//留言编号

		request.setAttribute("ly", list.get(0).get("ly"));//留言

		request.setAttribute("yh", list.get(0).get("yh"));//用户

		request.setAttribute("sj", list.get(0).get("sj"));//时间

		request.setAttribute("jsyh", list.get(0).get("jsyh"));//接收用户

		request.setAttribute("hf", list.get(0).get("hf"));//接收用户
		return "liuyan/liuyanmodify";
	}

mybatis 配置

<insert id="insertchengji"  parameterType="java.util.Map">
 insert  into  chengji(xs,kc,cj,fbsj)  values(#{xs},#{kc},#{cj},#{fbsj})
</insert>

<delete id="delchengji" parameterType="int">
 delete  from  chengji where cjid=#{cjid}
</delete>

<update id="updatechengji" parameterType="java.util.Map">
update chengji set xs=#{xs},kc=#{kc},cj=#{cj},fbsj=#{fbsj} where cjid=#{cjid}
</update>

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

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


</select>


三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件datasource.properties
2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmxyxx.sql 系统名称ssmxyxx
4、地址:http://127.0.0.1:8080/ssmxyxx/qt/index.jsp

四系统实现

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML—列表、表格、表单

1、列表 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表 1.1 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目 注意事项&#…

Microsoft Remote Desktop高效、安全、稳定的远程办公解决方案

在今天的数字化时代&#xff0c;Remote Desktop远程办公已成为许多人的日常生活。无论你是因为工作需要&#xff0c;还是因为在家中需要访问公司服务器&#xff0c;微软远程连接软件都是一个理想的选择。 微软远程连接软件Remote Desktop是一款高效、安全、稳定的远程办公解决…

(动手学习深度学习)第13章 实战kaggle竞赛:树叶分类

文章目录 实战kaggle比赛&#xff1a;树叶分类1. 导入相关库2. 查看数据格式3. 制作数据集4. 数据可视化5. 定义网络模型6. 定义超参数7. 训练模型8. 测试并提交文件 竞赛技术总结1. 技术分析2. 数据方面模型方面3. AutoGluon4. 总结 实战kaggle比赛&#xff1a;树叶分类 kagg…

数据库管理-第119期 记一次迁移和性能优化(202301130)

数据库管理-第119期 记一次迁移和性能优化&#xff08;202301130&#xff09; 1 迁移 之前因为DV组件没有迁移成功的那个PDB&#xff0c;后来想着在目标端安装DV组件迁移&#xff0c;结果目标端装不上&#xff0c;而且开了SR也没看出个所以然来。只能换一个方向&#xff0c;尝…

云计算生成式 -给你不一样的音乐推荐新体验

目录 摘要&#xff1a; 正文&#xff1a; 一、亚马逊云与生成式 AI 结合的展望/总结 二、我用亚马逊云科技生成式 AI 产品打造了什么&#xff0c;解决了什么问题 三、未来云端技术发展趋势的见解 四、云端技术未来需要解决的问题 1、如何保护数据安全和隐私&#xff1f; …

虚拟机系列:Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置

Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置Oracle VM VirtualBox安装/更新/卸载出现 无法访问你试图使用的功能所在的网络位置 在更新Oracle VM Virtua…

STC15-串口通信打印输出数据printf函数与sprintf函数

STC15-串口通信打印输出数据printf函数与sprintf函数 1.打印输出数据有二种printf函数与sprintf函数&#xff0c;不同之处有&#xff1a;&#xff08;1&#xff09;函数的声明不同&#xff08;2&#xff09;函数的功能不同&#xff08;3&#xff09;用法举例 该问题引用百度知道…

【面试HOT200】回溯篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于【CodeTopHot300】进行的&#xff0c;每个知识点的修正和深入主要参…

恒驰服务 | 华为云云上运维服务offering

恒驰运维服务主要针对运维要求高或自身运维能力有限的客户&#xff0c;通过服务增购的形式&#xff0c;提供运维服务以协助客户做好云上资源运维管理&#xff0c;规避业务风险&#xff0c;降低运维开销&#xff0c;提升客户业务稳定性。 适用场景&#xff1a; 如何保障业务稳定…

音乐播放器Swinsian mac功能介绍

Swinsian mac是一款音乐播放器&#xff0c;它的特点是轻量级、快速、易用。Swinsian支持多种音频格式&#xff0c;包括MP3、AAC、FLAC、WAV等。它还具有iTunes集成功能&#xff0c;可以自动导入iTunes音乐库中的音乐&#xff0c;并支持智能播放列表、标签编辑、自定义快捷键等功…

ssh连接docker容器处理备忘

1、查看容器ip&#xff0c;记下来之后要用 docker inspect elastic | grep IPAddress 2、使用root进入docker容器 docker exec -it -u root elastic /bin/bash 3、安装openssh #更新apt apt-get update#安装ssh client apt-get install openssh-client#安装ssh server apt-…

Ps:用好钢笔工具

使用钢笔工具时&#xff0c;应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时&#xff0c;按住 Ctrl 键点击画布空白处&#xff0c;或者&#xff0c;直接按 Esc 键&#xff0c;即可…

STM32的看门狗原理和示例代码

看门狗基础&#xff1a; STM32微控制器上的看门狗主要有两种类型&#xff1a;独立看门狗&#xff08;IWDG&#xff09;和窗口看门狗&#xff08;WWDG&#xff09;&#xff0c;这两者都是用于监控系统运行状态的机制&#xff0c;但它们在实现和应用上有一些区别&#xff1a; 独立…

docker buildx跨架构构建笔记(x86_64构建下构建aarch64镜像)

docker buildx跨架构构建(x86_64构建aarch64镜像) 文章目录 docker buildx跨架构构建(x86_64构建aarch64镜像)简介第一步 先交叉编译一个aarch64的HelloWorld程序。准备一个用于跨架构的Dockerfile文件使用docker buildx命令构建aarch64架构的镜像。查看镜像具体详细信息&#…

建堆的时间复杂度和堆排序

文章目录 建堆的时间复杂度向下调整建堆向上调整建堆 堆排序实现 建堆的时间复杂度 下面都以建大堆演示 向下调整建堆 void Adjustdown(HPDataType* a, int size,int parent) {int child parent * 2 1;while (child < size){if (child1<size&&a[child 1] &…

【shell】正则表达式和AWK

一.正则表达式 通配符匹配文件&#xff08;而且是已存在的文件&#xff09; 基本正则表达式扩展正则表达式 可以使用 man 手册帮助 正则表达式&#xff1a;匹配的是文章中的字符 通配符&#xff1a;匹配的是文件名 任意单个字符 1.元字符&#xff08;字符匹配&…

【2023CANN训练营第二季】——Ascend C算子调用及实验演示

自定义算子调用方式 完成自定义算子的开发部署后&#xff0c;可以通过单算子调用的方式来验证单算子的功能。单算子调用有API执行和模型执行两种方式&#xff1a; 单算子API执行&#xff1a;基于C语言的API执行算子&#xff0c;无需提供单算子描述文件进行离线模型的转换&…

IDEA性能优化的相关配置

有时候会发现idea用起来特别卡&#xff0c;你会发现不是整个电脑卡&#xff0c;而是idea用起来卡。这时候就需要对idea做一下性能优化了。 首先我们把idea的内存调出来&#xff1a;可以右击idea底部然后点这个Memory Indicator&#xff0c;然后就能看到idea使用的内存了。 为什…

传统算法:使用 Pygame 实现选择排序

使用 Pygame 模块实现了选择排序的动画演示。首先,它生成一个包含随机整数的数组,并通过 Pygame 在屏幕上绘制这个数组的条形图。接着,通过选择排序算法对数组进行排序,动画效果可视化每一步的排序过程。在排序的过程中,程序找到未排序部分的最小元素,并将其与未排序部分…