JSP教务管理系统eclipse定制开发mysql数据库BS模式java编程servlet

news2024/11/24 18:28:08

一、源码特点
     java 教务管理系统是一套完善的web设计系统 系统采用serlvet+dao+bean 模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。

java servlet 教务管理系统1


二、功能介绍

(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)教师管理:对教师信息进行添加、删除、修改和查看
(3)学生管理:对学生信息进行添加、删除、修改和查看
(4)学院管理:对学院信息进行添加、删除、修改和查看
(5)学年管理:对学年信息进行添加、删除、修改和查看
(6)学期管理:对学期信息进行添加、删除、修改和查看
(7)课程管理:对课程信息进行添加、删除、修改和查看
(8)选课管理:对选课信息进行添加、删除、修改和查看
(9)成绩管理:对成绩信息进行添加、删除、修改和查看
(10)个人信息修改
(11)用户登录,身份验证

数据库设计

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

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

[表jiaoshi] 教师列属性表格

序号字段名称数据类型长度主键描述
1jsidINTEGER11教师编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5xbVARCHAR40性别
6lxfsVARCHAR40联系方式
7lxdzVARCHAR40联系地址

[表xuesheng] 学生列属性表格

序号字段名称数据类型长度主键描述
1xsidINTEGER11学生编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5bjVARCHAR40班级
6xbVARCHAR40性别
7dhVARCHAR40电话
8xyVARCHAR40学院

[表xueyuan] 学院列属性表格

序号字段名称数据类型长度主键描述
1xyidINTEGER11学院编号
2xyVARCHAR40学院
3jsVARCHAR40介绍

[表xuenian] 学年列属性表格

序号字段名称数据类型长度主键描述
1xnidINTEGER11学年编号
2xnVARCHAR40学年

[表xueqi] 学期列属性表格

序号字段名称数据类型长度主键描述
1xqidINTEGER11学期编号
2xqVARCHAR40学期
3xnVARCHAR40学年

[表kecheng] 课程列属性表格

序号字段名称数据类型长度主键描述
1kcidINTEGER11课程编号
2kcmcVARCHAR40课程名称
3descVARCHAR4000介绍
4smVARCHAR40说明
5jsVARCHAR40教室
6rkjsVARCHAR40任课教师

[表xuanke] 选课列属性表格

序号字段名称数据类型长度主键描述
1xkidINTEGER11选课编号
2kcVARCHAR40课程
3xsVARCHAR40学生
4xksjVARCHAR40选课时间
5ztVARCHAR40状态

主要控制类

	private void insertM(HttpServletRequest request, HttpServletResponse response){//成绩添加
		chengjiDao dao=new chengjiDao();//声明DAO方法
		chengji chengji=new chengji();//声明chengji bean对象方法
		chengji.setCjid((String)request.getParameter("keyid"));//成绩编号
String kc=(String)request.getParameter("kc");//变量:课程
chengji.setKc((String)request.getParameter("kc"));//赋值:课程
String xs=(String)request.getParameter("xs");//变量:学生
chengji.setXs((String)request.getParameter("xs"));//赋值:学生
String tjsj=(String)request.getParameter("tjsj");//变量:添加时间
chengji.setTjsj((String)request.getParameter("tjsj"));//赋值:添加时间
String cj=(String)request.getParameter("cj");//变量:成绩
chengji.setCj((String)request.getParameter("cj"));//赋值:成绩
String xq=(String)request.getParameter("xq");//变量:学期
chengji.setXq((String)request.getParameter("xq"));//赋值:学期
String xn=(String)request.getParameter("xn");//变量:学年
chengji.setXn((String)request.getParameter("xn"));//赋值:学年
String sql="";
ResultSet rs=null;
int num=0;
DBO db=new DBO();
	response.setCharacterEncoding("gb2312");//设定页面字符集 防止乱码
		try {
			sql="select count(1) as num from chengji where kc='"+kc+"' and xs='"+xs+"'";
			rs=db.query(sql);
			if(rs.next()){
				num=rs.getInt("num");
			}
			if(num>0){
				request.setAttribute("flag", "操作失败、数据重复"); 
				
			}else{
				dao.insert(chengji);
				request.setAttribute("flag", "操作成功"); 
				
			}
		
			
			
			request.getRequestDispatcher("chengji/chengjiadd.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			db.close();
		}
				
	}
	private void ListM(HttpServletRequest request, HttpServletResponse response){//成绩信息列表
		ResultSet rs=null;
		chengjiDao dao = new chengjiDao();//声明DAO方法
	   
	    String str=(String)request.getParameter("Page");//获取分页数
		String sql="";
		response.setCharacterEncoding("gb2312");//设定页面字符集 防止乱码
		try{
		if(str==null){
				str="0";//如果没有 则默认当前页
				}		
				
		String kc=(String)request.getParameter("kc");//课程
		if(kc!=null&&!kc.equals("")){
		sql+=" and kc like '%"+kc+"%'";//符合条件 拼接sql 课程
		}
		
		String xs=(String)request.getParameter("xs");//学生
		if(xs!=null&&!xs.equals("")){
		sql+=" and xs like '%"+xs+"%'";//符合条件 拼接sql 学生
		}
		String xq=(String)request.getParameter("xq");//学期
		if(xq!=null&&!xq.equals("")){
		sql+=" and xq like '%"+xq+"%'";//符合条件 拼接sql 学期
		}
		
		String xn=(String)request.getParameter("xn");//学年
		if(xn!=null&&!xn.equals("")){
		sql+=" and xn like '%"+xn+"%'";//符合条件 拼接sql 学年
		}
		
		
			rs=dao.qlist(sql);

			PrintWriter out = response.getWriter();
			request.setAttribute("rs", rs); //通过request 传值
		

		request.getRequestDispatcher("chengji/chengjilist.jsp?Page="+str).forward(request, response);
		}catch(Exception e){
			e.toString();
			e.printStackTrace();
		}		


		
	}
	private void myListM(HttpServletRequest request, HttpServletResponse response){//成绩信息列表
		ResultSet rs=null;
		chengjiDao dao = new chengjiDao();//声明DAO方法
	   
	    String str=(String)request.getParameter("Page");//获取分页数
		String sql="";
		response.setCharacterEncoding("gb2312");//设定页面字符集 防止乱码
		try{
		if(str==null){
				str="0";//如果没有 则默认当前页
				}			
		if(request.getSession().getAttribute("yhm")!=null){
			
			sql+=" and xs='"+request.getSession().getAttribute("yhm")+"'";
		}
		
			rs=dao.qlist(sql);

			PrintWriter out = response.getWriter();
			request.setAttribute("rs", rs); //通过request 传值
		

		request.getRequestDispatcher("chengji/mylist.jsp?Page="+str).forward(request, response);
		}catch(Exception e){
			e.toString();
			e.printStackTrace();
		}		


		
	}

数据库交互

 public void  insert(chengji chengji) throws Exception{//添加成绩
			db=new DBO();
		   db.open();
			
			String sql = "insert into chengji (kc,xs,tjsj,cj,xq,xn ) values ('"+chengji.getKc()+"','"+chengji.getXs()+"','"+chengji.getTjsj()+"','"+chengji.getCj()+"','"+chengji.getXq()+"','"+chengji.getXn()+"')";
		
			
			db.update(sql);
			//db.commit();
			db.close();
		
		}
	 public void  modify(chengji chengji) throws Exception{//修改成绩
			db=new DBO();
		   db.open();
			
			String sql = "update chengji set  kc='"+chengji.getKc()+"',xs='"+chengji.getXs()+"',tjsj='"+chengji.getTjsj()+"',cj='"+chengji.getCj()+"',xq='"+chengji.getXq()+"',xn='"+chengji.getXn()+"' where cjid ='"+chengji.getCjid()+"'";
		
			
			db.update(sql);
			//db.commit();
			db.close();
		
		}
	 public void  delete(String keyid) throws Exception{//删除成绩
			db=new DBO();
		        db.open();
			
			String sql = "delete from chengji where cjid='"+keyid+"'";
		
			
			db.update(sql);
			//db.commit();
			db.close();
		
		}

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

四 系统实现

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

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

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

相关文章

BUUCTF 爱因斯坦 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 下载附件,解压得到一张.jpg图片。 密文: 解题思路: 1、因为题目没有什么提示,我们就一一尝试。将图片放到StegSolve中,在查看图片的File Format时&#x…

盘点60个Python网站项目Python爱好者不容错过

盘点60个Python网站项目Python爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1mY8pNUpZEV0Q-5-UvJTtBA?pwd8888 提取码:8888 项目名称 (No longermainta…

【史上最全】涵盖所有「存图方式」与「最短路算法」

题目描述 这是 LeetCode 上的 「1334. 阈值距离内邻居最少的城市」 ,难度为 「中等」。 Tag : 「最短路」、「图」 有 个城市,按从 到 编号。 给你一个边数组 edges,其中 代表 和 两个城市之间的双向加权边,距离阈值是一个整…

优化千万级数据表的实用指南

文章目录 优化千万级数据表的一次实践一、查询耗时太长二、优化解决方案三、优化后查询速度 优化千万级数据表的一次实践 一、查询耗时太长 随着数据量的增长,数据库性能往往成为关注的焦点。特别是在处理千万级数据表时,查询性能往往成为一个挑战。在这…

服务器数据恢复—服务器发生故障导致数据丢失如何恢复服务器数据?

服务器常见故障: 硬件故障:磁盘、板卡、电源故障等。 软件故障:操作系统崩溃、程序运行错误等。 入侵破坏:加密、删除服务数据等。 不可控力:浸水、火烧、倒塌等。 误操作:格式化、删除、覆盖等。 如何减少…

Cesium和Three.js的初步认识

一、Threejs和Cesium的对比 相同点: 都是基于WebGL技术开发的Javascript库,用于在浏览器中创建和显示动画3D计算机图形。 不同点: Threejs:受众面比较广,是封装了webgl的一些底层用法,让初学者更容易上…

[linux网络实验] 多网卡绑定

聚合链路技术 什么是bonding 提供了一种将多个网络接口设备绑定到一个网络接口的方法。这可用于网络负载平衡和网络冗余; 实现将两个网卡虚拟成一个网卡。这种聚合设备看起来就像一个以太网接口设备。通俗地说,这意味着两个网卡拥有相同的 IP 地址&am…

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和 文章链接:最长公共子序列、不相交的线、最大子数组和 视频链接:最长公共子序列、不相交的线、最大子数组和 1. LeetCode 1143. 最长公共子序列 1…

WMS系统出库管理:功能、流程与优势

一、WMS系统出库管理概述 WMS系统是一种用于仓库管理的信息系统,它涵盖了从货物入库、在库管理到出库的全过程。在WMS系统中,出库管理是非常重要的一环,它涉及到的功能包括订单处理、拣货、打包、发货等。通过WMS系统的出库管理,…

世界互联网大会|美创科技新一代 数据安全管理平台,携五大新特性发布亮相

11月7日,2023年世界互联网大会“互联网之光”博览会在浙江乌镇开幕。今年是博览会办展第十年,重点突出国际性、创新性、引领性。在新产品新技术发布活动中,美创科技全新升级的新一代 数据安全管理平台(简称:DSM Cloud&…

SaaS 电商设计 (四) 如何做大促压测

一.背景&目标 1.1 常见的压测场景 电商大促:一众各大厂的促销活动场景,如:淘宝率先推出的天猫双11,而后京东拉出的京东 618 .还是后续陆陆续续的一些年货节, 3.8 女神节等等.都属于一些常规的电商大促 票务抢购:常见的如承载咱们 80,90 青春回忆的 Jay 的演唱会,还有普罗…

基于Rabbitmq和Redis的延迟消息实现

1 基于Rabbitmq延迟消息实现 支付时间设置为30,未支付的消息会积压在mq中,给mq带来巨大压力。我们可以利用Rabbitmq的延迟队列插件实现消息前一分钟尽快处理 1.1定义延迟消息实体 由于我们要多次发送延迟消息,因此需要先定义一个记录消息…

小程序与公众号下发统一消息接口返回45109

根据微信官方通告,自 2023 年 9 月 20 日起,下发统一消息接口将被收回,返回45109。链接见 小程序与公众号下发统一消息接口调整通知 | 微信开放社区各位开发者:下发统一消息 接口曾支持小程序与公众号统一的模板消息下发。由于小程…

虹科示波器 | 汽车免拆检修 | 2014款保时捷卡宴车行驶中发动机偶尔自动熄火

一、故障现象 一辆2014款保时捷卡宴车,搭载4.8L自然吸气发动机,累计行驶里程约为10.3万km。车主反映,行驶中发动机偶尔自动熄火,尤其在减速至停车的过程中故障容易出现。 二、故障诊断 接车后路试,确认故障现象与车主所…

DTC Network旗下代币DSTC大蒜头即将上线,市场热度飙升

全球数字资产领导者DTC Network宣布其代币DSTC(大蒜头)即将于近期上线,引发市场广泛关注。DTC Network以其创新性的区块链技术和多维度的网络构建,致力于打造一个融合Web3.0、元宇宙和DAPP应用的去中心化聚合公共平台,…

Shiro快速入门之二

一、前言 Shiro快速入门之一 介绍了Shiro三大核心组件,四大核心功能,以及一个简单的Test Demo,接下来两篇我会用一个比较完整的例子来讲述Shiro的认证及授权是怎么做的,本篇侧重于介绍认证的过程 二、Shiro认证例子 1、例子概述…

立体库堆垛机控制程序手动功能实现

手动操作功能模块 手动前后保护锁 *************提升手动程序段 手动上升,下降保护锁 **********货叉手动程序段

【第2章 Node.js基础】2.4 Node.js 全局对象(二) process 对象

process对象是一个全局对象,提供当前Node.js 进程信息并对其进行控制。通常用于编写本地命令行程序。 1.进程事件 process对象是EventEmitter类的实例,因此可以使用事件的方式来处理和监听process对象的各种事件。以下是一些常用的process对象事件&…

Webpack 性能优化 二次编译速度提升3倍!

本文作者为 360 奇舞团前端开发工程师 Rien. 本篇文章主要记录 webpack 的一次性能优化。 现状 随着业务复杂度的不断增加,项目也开始变得庞大,工程模块的体积也不断增加,webpack 编译的时间也会越来越久,我们现在的项目二次编译的…

医院安全(不良)事件管理系统源码 不良事件报告全套源码

不良事件管理系统是一种专为企业或组织设计的软件工具,用于跟踪、记录和管理不良事件。该系统可以有效地整合不良事件的收集、分类、分析和报告,帮助企业及时识别和处理不良事件,从而降低风险和损失。通过实时监控和自动化报告,该…