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)课程类别管理:对课程类别信息进行添加、删除、修改和查看
(7)科研类别管理:对科研类别信息进行添加、删除、修改和查看
(8)科研管理:对科研信息进行添加、删除、修改和查看
(9)论文著作管理:对论文著作信息进行添加、删除、修改和查看
(10)项目管理:对项目信息进行添加、删除、修改和查看
(11)专利管理:对专利信息进行添加、删除、修改和查看
(12)科研奖励管理:对科研奖励信息进行添加、删除、修改和查看
(13)工作量管理:对工作量信息进行添加、删除、修改和查看
(14)用户登录、个人信息修改
数据库设计
(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 | jslxid | INTEGER | 11 | 是 | 教师类型编号 |
| 2 | lx | VARCHAR | 40 | 否 | 类型 |
| 3 | sl | VARCHAR | 40 | 否 | 数量 |
(3)教师信息表如表5.3所示:
表5.3 教师信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | jsid | INTEGER | 11 | 是 | 教师编号 |
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | jgh | VARCHAR | 40 | 否 | 教工号 |
| 6 | xb | VARCHAR | 40 | 否 | 性别 |
| 7 | xl | VARCHAR | 40 | 否 | 学历 |
| 8 | zzmm | VARCHAR | 40 | 否 | 政治面貌 |
| 9 | lxfs | VARCHAR | 40 | 否 | 联系方式 |
| 10 | lx | VARCHAR | 40 | 否 | 类型 |
(4)学期信息表如表5.4所示:
表5.4 学期信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | xqid | INTEGER | 11 | 是 | 学期编号 |
| 2 | xq | VARCHAR | 40 | 否 | 学期 |
(5)课程表如表5.5所示:
表5.5 课程信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | kcid | INTEGER | 11 | 是 | 课程编号 |
| 2 | kcmc | VARCHAR | 40 | 否 | 课程名称 |
| 3 | kclb | VARCHAR | 40 | 否 | 课程类别 |
| 4 | xs | VARCHAR | 40 | 否 | 学时 |
| 5 | js | VARCHAR | 40 | 否 | 介绍 |
(6)课程类别信息表如表5.6所示:
表5.6 课程类别信息表
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | kclbid | INTEGER | 11 | 是 | 课程类别编号 |
| 2 | lb | VARCHAR | 40 | 否 | 类别 |
科研类别
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | kylbid | INTEGER | 11 | 是 | 科研类别编号 |
| 2 | kylb | VARCHAR | 40 | 否 | 科研类别 |
科研
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | kyid | INTEGER | 11 | 是 | 科研编号 |
| 2 | kymc | VARCHAR | 40 | 否 | 科研名称 |
| 3 | lb | VARCHAR | 40 | 否 | 类别 |
| 4 | js | VARCHAR | 40 | 否 | 介绍 |
| 5 | ktfx | VARCHAR | 40 | 否 | 课题方向 |
| 6 | yh | VARCHAR | 40 | 否 | 用户 |
| 7 | fbsj | VARCHAR | 40 | 否 | 发布时间 |
控制层类
@RequestMapping(value="/add")public String add(gzl gzl,HttpServletRequest request){Map<String,Object> map= new HashMap<String,Object>();//String name=(String)request.getParameter("name");map.put("gzlid", gzl.getGzlid());//工作量编号map.put("xq", gzl.getXq());//学期map.put("xm", gzl.getXm());//姓名map.put("jg", gzl.getJg());//教工map.put("kcmc", gzl.getKcmc());//课程名称map.put("xs", gzl.getXs());//学时map.put("tjrq", gzl.getTjrq());//添加日期map.put("zt", gzl.getZt());//状态String gzlid=(String)gzl.getGzlid();//工作量编号String xq=(String)gzl.getXq();//学期String xm=(String)gzl.getXm();//姓名String jg=(String)gzl.getJg();//教工String kcmc=(String)gzl.getKcmc();//课程名称String xs=(String)gzl.getXs();//学时String tjrq=(String)gzl.getTjrq();//添加日期String zt=(String)gzl.getZt();//状态gzldao.save(map);request.setAttribute("msg", "<script>alert('添加成功');</script>");System.out.println("addok");return "gzl/gzladd";}/**删除 * */@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>");gzldao.del(id);return selectall(null,map,request);}/*** 修改gzl信息*/@RequestMapping(value="/update")public String update(gzl gzl,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();map.put("gzlid", gzl.getGzlid());//工作量编号map.put("xq", gzl.getXq());//学期map.put("xm", gzl.getXm());//姓名map.put("jg", gzl.getJg());//教工map.put("kcmc", gzl.getKcmc());//课程名称map.put("xs", gzl.getXs());//学时map.put("tjrq", gzl.getTjrq());//添加日期map.put("zt", gzl.getZt());//状态String gzlid=(String)gzl.getGzlid();//工作量编号String xq=(String)gzl.getXq();//学期String xm=(String)gzl.getXm();//姓名String jg=(String)gzl.getJg();//教工String kcmc=(String)gzl.getKcmc();//课程名称String xs=(String)gzl.getXs();//学时String tjrq=(String)gzl.getTjrq();//添加日期String zt=(String)gzl.getZt();//状态request.setAttribute("msg", "<script>alert('操作成功');</script>");gzldao.update(map);return selectall(null,map1,request);}/*** 查询gzl信息*/@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=gzldao.select(Integer.parseInt(keyid));request.setAttribute("gzlid", list.get(0).get("gzlid"));//工作量编号request.setAttribute("xq", list.get(0).get("xq"));//学期request.setAttribute("xm", list.get(0).get("xm"));//姓名request.setAttribute("jg", list.get(0).get("jg"));//教工request.setAttribute("kcmc", list.get(0).get("kcmc"));//课程名称request.setAttribute("xs", list.get(0).get("xs"));//学时request.setAttribute("tjrq", list.get(0).get("tjrq"));//添加日期request.setAttribute("zt", list.get(0).get("zt"));//状态return "gzl/gzlmodify";}@RequestMapping(value="/detail")public String detail(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=gzldao.select(Integer.parseInt(keyid));request.setAttribute("gzlid", list.get(0).get("gzlid"));//工作量编号request.setAttribute("xq", list.get(0).get("xq"));//学期request.setAttribute("xm", list.get(0).get("xm"));//姓名request.setAttribute("jg", list.get(0).get("jg"));//教工request.setAttribute("kcmc", list.get(0).get("kcmc"));//课程名称request.setAttribute("xs", list.get(0).get("xs"));//学时request.setAttribute("tjrq", list.get(0).get("tjrq"));//添加日期request.setAttribute("zt", list.get(0).get("zt"));//状态return "gzl/gzldetail";}
持久层
public void save(Map<String, Object> map) {sqlSession.insert("com.gzl.insertgzl", map);}/*** 删除aa* @param id*/public void del(Integer id) {sqlSession.delete("com.gzl.delgzl", id);}/*** 修改gzl信息* @param map*/public void update(Map<String, Object> map) {sqlSession.update("com.gzl.updategzl", map);}/*** 查询gzl信息* @param id* @return */public List<Map<String, Object>> select(Integer id) {return sqlSession.selectList("com.gzl.selectgzl", id) ; }/*** 查询gzl信息* * @return */public List<Map<String, Object>> selectAll(Map<String, Object> map) {return sqlSession.selectList("com.gzl.selectall", map) ; }
三、注意事项
1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
3、数据库文件名是jspssmgzl.sql,系统名称ssmgzl
4、系统首页地址:http://127.0.0.1:8080/ssmgzl/login.jsp
四 系统实现




源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
相关文章:
java SSM教师工作量管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
一、源码特点 java SSM 教师工作量管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要…...
大数据技术之Hive(超级详细)
第1章 Hive入门 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序 …...
NVMe over Fabrics with SPDK with iRDMA总结 - 1
1.0 Introduction简介 NVM Express* (NVMe*) drives are high-speed, low-latency, solid-state drives (SSDs), that connect over the server Peripheral Component Interconnect Express* (PCIe*) bus. NVM Express* (NVMe*) 硬盘是高速、低延迟的固态硬盘 (SSD),通过服…...
【PTA刷题】求链式线性表的倒数第K项(代码+详解)
文章目录 题目代码详解 题目 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。 输入格式: 输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内&#…...
VSCode 创建工作区,多文件夹终端切换
VSCode 创建工作区的好处有以下几点: 项目结构清晰:每个工作区都有自己的文件夹结构,可以更好地组织和管理项目文件。版本控制:VSCode 支持多种版本控制系统,如Git,可以在工作区内进行代码的版本管理。插件…...
高阶函数(js的问题)
(1)函数可以作为参数被传递 (2)函数可以作为返回值输出 4-1.函数作为参数传递 Array.prototype.sort方法: var array [10,5,12,3];array.sort();//array:[10,12,3,5]//如代码那样,排序的结果并不是我们想要…...
android-android源码目录
android源码目录 Android.bp art bionic bootable bootstrap.bash build build.sh compatibility cts dalvik developers development device external frameworks: Android 系统的核心框架代码av: 该目录包含与音视频相关的框架和库,如音频解码器、视频编码器、多…...
Json格式化
Json格式化 大家好,我是微赚淘客机器人的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Json格式化:让数据更亮眼,解密Json的奇妙世界 在现代Web开发中,Json(JavaScript Object N…...
数据可视化设计:让数据故事更有说服力
写在开头 在数字化的时代,数据如同一把锁住的宝剑,等待我们挥舞。然而,唯有通过巧妙运用数据可视化的原则和技术,我们才能真正解锁数据的力量,创造出令人信服的数据故事。本文将深入研究数据可视化设计的奥秘,揭示其中的魔法,让你在数据的海洋中游刃有余,用数据的语言…...
java面试题-Spring事务以及@Transactional注解详解
远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 对于这个面试中高频问到…...
ARM流水灯
.text .global _start _start: LED1 1.RCC时钟使能GPIOE RCC_MP_AHB4ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) STR R1,[R0] 2.设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0] BIC R1,R1,#(0x3<&…...
docker-compose单机容器编排
Dockerfile:先配置好文件,然后build,镜像-------->容器。 docker-conpose 既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。 docker-compose核心就是yml文件,可以定义容器的一切。通过yml配置,直接运行…...
matlab信号分选系统算法-完整算法结构
matlab信号分选系统算法 针对得到的脉冲流PDW进行信号分选,包括重频恒定、重频抖动、重频参差和重频滑变四种脉间调制类型。 这里我们先进行数据的仿真,后续边仿真边分享思路:首先根据信号类型,分别产生重频恒定、重频抖动、重…...
十八)Stable Diffusion使用教程:艺术二维码案例
今天说说怎么样使用SD生成艺术二维码。 我们直接上图。 方式有三种,分别如下: 1)方式一:直接 contronet 的tile模型进行控制 使用QRBTF Classic生成你的二维码。 首先输入网址,选择喜欢的二维码样式(推荐第一种就行): 然后选择相应参数,这里推荐最大的容错率,定…...
【LeetCode每日一题】53. 最大子数组和
https://leetcode.cn/problems/maximum-subarray/description/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 方式一:暴力…...
机器学习笔记 什么是协方差矩阵?
一、协方差矩阵 协方差矩阵是一种矩阵,用于表示随机向量中给定的元素对之间的协方差值。协方差矩阵也可以称为色散矩阵或方差-协方差矩阵。这是因为每个元素的方差是沿着矩阵的主对角线表示的。 协方差矩阵始终是方阵。此外,它是半正定且对称的。该矩阵在随机建模和主成分分析…...
使用Python监控服务器在线状态
前言 在公司内网有一台服务器,有动态的公网IP,使用DDNS对外提供服务,但是会因为停电、服务器卡死等原因导致服务器离线。服务器离线后无法及时获知,因此需要实现在服务器离线的时候能够发送消息到手机上。 思路梳理 公司办理的…...
【JAVA】黑马MybatisPlus 学习笔记【二】【核心功能】
2.核心功能 刚才的案例中都是以id为条件的简单CRUD,一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外&…...
区块链实验室(30) - 区块链期刊:Distributed Ledger Technologies: Research and Practice
区块链涉及多学科及技术,众多期刊接收区块链文章。Distributed Ledger Technologies: Research and Practice是ACM出版集团的一本期刊。 Distributed Ledger Technologies: Research and Practice创刊历史很短,始于2022年,出版期数也不多。 载…...
Nginx【通俗易懂】《中篇》
目录 1.Url重写rewrite 2.防盗链 3.静态资源压缩 4.跨域问题 1.Url重写rewrite 🤩🤩🤩 1.1.rewrite书写格式 rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到rep…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
