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…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...