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)课程执行管理:对课程执行信息进行添加、删除、修改和查看   
(6)用户登录、个人信息修改

数据库设计

(1)管理员信息表如表5.1所示:

表5.1 管理员信息表

序号

字段名称

数据类型

长度

主键

描述

1

glyid

INTEGER

11

管理员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

(2)教师如表5.2所示:

表5.2 教师表

序号

字段名称

数据类型

长度

主键

描述

1

jsid

INTEGER

11

教师编号

2

jgh

VARCHAR

40

教工号

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

xb

VARCHAR

40

性别

6

xy

VARCHAR

40

学院

7

lxfs

VARCHAR

40

联系方式

(3)学生表如表5.3所示:

表5.3 学生表

序号

字段名称

数据类型

长度

主键

描述

1

xsid

INTEGER

11

学生编号

2

xh

VARCHAR

40

学号

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

nl

VARCHAR

40

年龄

6

xb

VARCHAR

40

性别

7

bj

VARCHAR

40

班级

8

lxfs

VARCHAR

40

联系方式

9

jtzz

VARCHAR

40

家庭住址

(4)课程表如表5.4所示:

表5.4 课程信息表

序号

字段名称

数据类型

长度

主键

描述

1

kcid

INTEGER

11

课程编号

2

kcmc

VARCHAR

40

课程名称

3

rkjs

VARCHAR

40

任课教师

4

dw

VARCHAR

40

单位

5

kkbj

VARCHAR

40

开课班级

6

kcsx

VARCHAR

40

课程属性

7

llxs

VARCHAR

40

理论学时

8

syxs

VARCHAR

40

实验学时

9

sjxs

VARCHAR

40

上机学时

10

skrs

VARCHAR

40

上课人数

实体关系图

代码设计

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

		map.put("kcid", kecheng.getKcid());//课程编号

		map.put("kcmc", kecheng.getKcmc());//课程名称

		map.put("rkjs", kecheng.getRkjs());//任课教师

		map.put("dw", kecheng.getDw());//单位

		map.put("kkbj", kecheng.getKkbj());//开课班级

		map.put("kcsx", kecheng.getKcsx());//课程属性

		map.put("llxs", kecheng.getLlxs());//理论学时

		map.put("syxs", kecheng.getSyxs());//实验学时

		map.put("sjxs", kecheng.getSjxs());//上机学时

		map.put("skrs", kecheng.getSkrs());//上课人数



		String kcid=(String)kecheng.getKcid();//课程编号

		String kcmc=(String)kecheng.getKcmc();//课程名称

		String rkjs=(String)kecheng.getRkjs();//任课教师

		String dw=(String)kecheng.getDw();//单位

		String kkbj=(String)kecheng.getKkbj();//开课班级

		String kcsx=(String)kecheng.getKcsx();//课程属性

		String llxs=(String)kecheng.getLlxs();//理论学时

		String syxs=(String)kecheng.getSyxs();//实验学时

		String sjxs=(String)kecheng.getSjxs();//上机学时

		String skrs=(String)kecheng.getSkrs();//上课人数

		kechengdao.save(map);
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "kecheng/kechengadd";
	}
	
	/**删除 
	 * 
	 */
	@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>");
		kechengdao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改kecheng信息
	 */
	@RequestMapping(value="/update")
	public String update(kecheng kecheng,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("kcid", kecheng.getKcid());//课程编号

		map.put("kcmc", kecheng.getKcmc());//课程名称

		map.put("rkjs", kecheng.getRkjs());//任课教师

		map.put("dw", kecheng.getDw());//单位

		map.put("kkbj", kecheng.getKkbj());//开课班级

		map.put("kcsx", kecheng.getKcsx());//课程属性

		map.put("llxs", kecheng.getLlxs());//理论学时

		map.put("syxs", kecheng.getSyxs());//实验学时

		map.put("sjxs", kecheng.getSjxs());//上机学时

		map.put("skrs", kecheng.getSkrs());//上课人数



		String kcid=(String)kecheng.getKcid();//课程编号

		String kcmc=(String)kecheng.getKcmc();//课程名称

		String rkjs=(String)kecheng.getRkjs();//任课教师

		String dw=(String)kecheng.getDw();//单位

		String kkbj=(String)kecheng.getKkbj();//开课班级

		String kcsx=(String)kecheng.getKcsx();//课程属性

		String llxs=(String)kecheng.getLlxs();//理论学时

		String syxs=(String)kecheng.getSyxs();//实验学时

		String sjxs=(String)kecheng.getSjxs();//上机学时

		String skrs=(String)kecheng.getSkrs();//上课人数

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		kechengdao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 查询kecheng信息
	 */
	@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=kechengdao.select(Integer.parseInt(keyid));
		request.setAttribute("kcid", list.get(0).get("kcid"));//课程编号

		request.setAttribute("kcmc", list.get(0).get("kcmc"));//课程名称

		request.setAttribute("rkjs", list.get(0).get("rkjs"));//任课教师

		request.setAttribute("dw", list.get(0).get("dw"));//单位

		request.setAttribute("kkbj", list.get(0).get("kkbj"));//开课班级

		request.setAttribute("kcsx", list.get(0).get("kcsx"));//课程属性

		request.setAttribute("llxs", list.get(0).get("llxs"));//理论学时

		request.setAttribute("syxs", list.get(0).get("syxs"));//实验学时

		request.setAttribute("sjxs", list.get(0).get("sjxs"));//上机学时

		request.setAttribute("skrs", list.get(0).get("skrs"));//上课人数

		
		return "kecheng/kechengmodify";
	}

mybatis 配置文件

<!-- 添加用户信息 -->
<insert id="insertkecheng"  parameterType="java.util.Map">
 insert  into  kecheng(kcmc,rkjs,dw,kkbj,kcsx,llxs,syxs,sjxs,skrs)  values(#{kcmc},#{rkjs},#{dw},#{kkbj},#{kcsx},#{llxs},#{syxs},#{sjxs},#{skrs})
</insert>

<delete id="delkecheng" parameterType="int">
 delete  from  kecheng where kcid=#{kcid}
</delete>

<update id="updatekecheng" parameterType="java.util.Map">
update kecheng set kcmc=#{kcmc},rkjs=#{rkjs},dw=#{dw},kkbj=#{kkbj},kcsx=#{kcsx},llxs=#{llxs},syxs=#{syxs},sjxs=#{sjxs},skrs=#{skrs} where kcid=#{kcid}
</update>

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

<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">
  select  * from kecheng where 1=1
<if test=" null != kcmc and kcmc!=''" >
 and kcmc = #{kcmc}
</if>
<if test=" null != rkjs and rkjs!=''" >
 and rkjs = #{rkjs}
</if>
<if test=" null != dw and dw!=''" >
 and dw = #{dw}
</if>
<if test=" null != kkbj and kkbj!=''" >
 and kkbj = #{kkbj}
</if>
<if test=" null != kcsx and kcsx!=''" >
 and kcsx = #{kcsx}
</if>
<if test=" null != llxs and llxs!=''" >
 and llxs = #{llxs}
</if>
<if test=" null != syxs and syxs!=''" >
 and syxs = #{syxs}
</if>
<if test=" null != sjxs and sjxs!=''" >
 and sjxs = #{sjxs}
</if>
<if test=" null != skrs and skrs!=''" >
 and skrs = #{skrs}
</if>

</select>


三、注意事项
    1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
     2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
    3、数据库文件名是jspssmjiaoshi.sql,系统名称ssmjiaoshi
    4、系统首页地址:http://127.0.0.1:8080/ssmjiaoshi/login.jsp

四 系统实现

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

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

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

相关文章

谷歌发布Gemini 1.0,开启生成式AI模型新时代!

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; IT杂谈 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. Gemini的发布前期1.1 Gemini的准备1.2 DeepMnid 二. Gemini的三大杀手锏2.1 多模态能力2…

Linux 音视频SDK开发实践

一、兼容性适配处理 为什么需要兼容处理&#xff1f; 1、c兼容处理 主要有ABI兼容性问题&#xff0c;不同ubuntu系统依赖的ABI版本如下&#xff1a; ubuntu 18.04ubuntu 16.04ubuntu 14.04g7.55.44.8stdc版本libstdc.so.6.0.25libstdc.so.6.0.21libstdc.so.6.0.19GLIBCXXG…

详解YOLOv5网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

一、本文介绍 本文给大家带来的教程是利用YOLOv5训练自己的数据集&#xff0c;以及有关YOLOv5的网络结构讲解/数据集获取/环境搭建/训练/推理/验证/导出/部署相关的教程&#xff0c;同时通过示例的方式让大家来了解具体的操作流程&#xff0c;过程中还分享给大家一些好用的资源…

电脑备忘录小工具怎么添加?怎么在电脑桌面添加备忘录?

作为一名天天用电脑办公的上班族&#xff0c;如果你需要对某个项目或问题进入深入思考&#xff0c;想要快速记录想法和思路&#xff0c;这时候会选择什么样的记事方式呢&#xff1f;如果你需要记录常用的工作文字内容、工作注意事项、项目流程、待办的工作安排等&#xff0c;用…

vue 将后端返回的二进制流进行处理并实现下载

什么是二进制流文件&#xff1f; 二进制文件是一种计算机文件格式&#xff0c;它的数据以二进制形式存储&#xff0c;与文本文件不同。二进制文件可以包含任意类型的数据&#xff0c;例如图像、音频、视频、可执行文件、压缩文件等&#xff0c;而文本文件则仅仅包含 ASCII 码或…

PCL 点云匹配 之NICP(Normal ICP)

一、概述 上面一篇中我们已经得出了一个结论&#xff0c;就是ICP虽然简单&#xff0c;但是也有明显的缺点 1、计算速度慢&#xff0c;收敛慢&#xff0c;迭代次数多 2、对内存的开销比较大 3、很容易陷入局部最优的困局 因此我们在经典ICP的基础上添加一两个约束&#xff1a; 第…

鸿蒙开发之简单登录页面

Entry Component struct Index {State loading:booleanfalse;build() {Row() {Column({ space: 5 }) {Image($r("app.media.app_icon")).width(100).height(100).borderRadius(10).margin({top: 60})Text("登录界面").fontSize(40).fontWeight(FontWeight.…

Apollo Planning——PathLaneBorrowDecider

引用 组件数据缓存 DependencyInjector DependencyInjector&#xff1a;依赖注入器&#xff0c;这是一个过于专业的名词&#xff0c;来自软件设计模式的依赖倒置原则的一种具体实现方式&#xff0c;起到模块解耦作用。“依赖倒置原则(Dependence Inversion Principle)是程序要…

全国国控监测点点位数据,shp/excel格式,已可视化

基本信息. 数据名称: 全国国控监测点点位数据 数据格式: shpexcel 时间版本&#xff1a;2023年 数据几何类型: 点 数据精度&#xff1a;全国 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1province省名称2city城市…

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0c;创建新的对象。 原型模式是一种创建型设计模式&#xff0c;允许一个对象再创建另外一个可定制的对象&#xff0c;无需知道如何创建的细节。 工作原…

SQLturning:定位连续值范围起点和终点

在上一篇blog说到&#xff0c;如何去优化查询连续值范围&#xff0c;没看过的朋友&#xff0c;上篇blog链接[在此]。(https://blog.csdn.net/weixin_42575078/article/details/135067645?spm1001.2014.3001.5501) 那么今天来说说怎么将连续的数据合并&#xff0c;然后返回合并…

Android的组件、布局学习

介绍 公司组织架构调整&#xff0c;项目组需要承接其他项目组的android项目&#xff0c;负责维护和开发新需求&#xff0c;故学习下基础语法和项目开发。 组件学习 Toolbarheader布局部分 就是app最顶部的部分 他的显示与否&#xff0c;是与F:\androidProject\android_lear…

HTML有哪些列表以及具体的使用!!!

文章目录 一、HTML列表二、列表的应用1、无序列表2、有序列表3、自定义列表 三、总结 一、HTML列表 html的列表有三种&#xff0c;一种是无序列表&#xff0c;一种是有序列表&#xff0c;还有一种为自定义列表。 二、列表的应用 1、无序列表 <ul> <li>无序列表…

【ONE·English || 翻译作业 Development: Mendel‘s Legacy to Genetics】

总言 作业&#xff1a;没有严格按照语句结构进行翻译&#xff0c;有不规范之处。下述目录中每一小节是按照原文段落划分。   相关链接&#xff1a;pubmed中查阅的链接&#xff0c;提供了两处文章平台。 文章目录 总言part11.11.21.3 part2&#xff1a;Entwicklung and develo…

LabVIEW开发自动驾驶的双目测距系统

LabVIEW开发自动驾驶的双目测距系统 随着车辆驾驶技术的不断发展&#xff0c;自动驾驶技术正日益成为现实。从L2级别的辅助驾驶技术到L3级别的受条件约束的自动驾驶技术&#xff0c;车辆安全性和智能化水平正在不断提升。在这个过程中&#xff0c;车辆主动安全预警系统发挥着关…

hive企业级调优策略之Join优化

测试所用到的数据参考&#xff1a; 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135080511 本教程的计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。 Join算法概述 Hive拥有多种join算法&#xff0c;包括Common Join&#xff0c;Map …

Android 应用基准分析

先推荐一个作者的开源项目 最快的Json解析方式 参考 benchmark数据参考 benchmark的例子 可以参考json-benchmark 应用基准分析 是衡量时间维度的框架,是App界的鲁大师跑分,常用于耗时判断,冷启动,热启动,框架对比 预热对比等方面 开局一张图 下面再编 今天要做的是Microbe…

使用Python编写简单网络爬虫实例:爬取图片

&#x1f34e;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 ​编辑 简介 步骤 1. 安装依赖库 2. 创建目录 3. 发送HTTP请求并解析页面 4. 查找图片标签并下载图片 注意事项 结语 我的其他博客 简介 网络爬虫是一种…

我的游戏被DDoS攻击了怎么办?

“我的游戏最近一直在被攻击&#xff0c;有什么办法可以解决”&#xff0c;最近遇到不少用户来问德迅云安全提到了自己目前遇到的这个攻击问题&#xff0c;询问有没有什么好的解决办法&#xff1f; 那遇到用户反馈的DDOS攻击&#xff0c;德迅云安全是怎么做的。 很多用户现在遇…

js数组方法总结,数组遍历方法,判断数组方法总结

目录 原生数组方法数组方法用法说明数组乱序和数组拆解会改变数组的方法不改变数组的方法JS 中的数组存储 判断数组的方法数组遍历的方法forEach和map方法有什么区别 原生数组方法 1.数组和字符串转换方法&#xff1a;toString&#xff0c;toLocalString&#xff0c;join&…