ideaSSM 网上选课管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点
  idea 开发 SSM 网上选课管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 bootstrap.css jquery
后端主要技术 SpringMVC spring mybatis 
数据库 mysql
开发工具 IDEA  JDK1.8 TOMCAT 8.5

java ssm网上选课系统

二、功能介绍
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)教师管理:对教师信息进行添加、删除、修改和查看
(3)学生管理:对学生信息进行添加、删除、修改和查看
(4)课程管理:对课程信息进行添加、删除、修改和查看
(5)上课时间管理:对上课时间信息进行添加、删除、修改和查看
(6)选课管理:对选课信息进行添加、删除、修改和查看
(7)反馈管理:对反馈信息进行添加、删除、修改和查看
(8)申请管理:对申请信息进行添加、删除、修改和查看
(9)公告管理:对公告信息进行添加、删除、修改和查看
(10)个人信息修改 业主注册、用户登录

数据库设计

CREATE TABLE `gly` (
`glyid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',  PRIMARY KEY  (`glyid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `jiaoshi` (
`jsid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',  PRIMARY KEY  (`jsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `xuesheng` (
`xsid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',
`xh` VARCHAR(40) default NULL COMMENT '学号',
`bj` VARCHAR(40) default NULL COMMENT '班级',
`zy` VARCHAR(40) default NULL COMMENT '专业',
`xy` VARCHAR(40) default NULL COMMENT '学院',  PRIMARY KEY  (`xsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `kecheng` (
`kcid` int(11) NOT NULL auto_increment,
`kcmc` VARCHAR(40) default NULL COMMENT '课程名称',
`rkjs` VARCHAR(40) default NULL COMMENT '任课教师',
`sm` VARCHAR(40) default NULL COMMENT '说明',
`lb` VARCHAR(40) default NULL COMMENT '类别',
`zt` VARCHAR(40) default NULL COMMENT '状态',  PRIMARY KEY  (`kcid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `sksj` (
`sksjid` int(11) NOT NULL auto_increment,
`kc` VARCHAR(40) default NULL COMMENT '课程',
`sksj` VARCHAR(40) default NULL COMMENT '上课时间',
`j` VARCHAR(40) default NULL COMMENT '节',
`dd` VARCHAR(40) default NULL COMMENT '地点',  PRIMARY KEY  (`sksjid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `xuanke` (
`xkid` int(11) NOT NULL auto_increment,
`lsh` VARCHAR(40) default NULL COMMENT '流水号',
`kc` VARCHAR(40) default NULL COMMENT '课程',
`xs` VARCHAR(40) default NULL COMMENT '学生',
`zt` VARCHAR(40) default NULL COMMENT '状态',
`xksj` VARCHAR(40) default NULL COMMENT '选课时间',
`lb` VARCHAR(40) default NULL COMMENT '类别',  PRIMARY KEY  (`xkid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

代码设计

  @Resource
    private gonggaoDao gonggaodao;
    @RequestMapping(value="/addpage")
    public String addpage(gonggao bean, HttpServletRequest request){
	/**
	公告添加页面
	*/

        Map<String,Object> map= new HashMap<String,Object>();

        System.out.println("addPageok");
        return "gonggao/gonggaoadd";
    }

    @RequestMapping(value="/add")
    public String add(gonggao bean, HttpServletRequest request){
        /**
	公告添加处理方法
	**/
        Map<String,Object> map= new HashMap<String,Object>();//初始变量

	

		String ggid=(String)request.getParameter("ggid");//公告编号

		String bt=(String)request.getParameter("bt");//标题

		String nr=(String)request.getParameter("nr");//内容

		String fbsj=(String)request.getParameter("fbsj");//发布时间

        



        gonggaodao.add(bean);//调用添加方法
        System.out.println("add");
        request.setAttribute("msg", "<script>alert('添加成功');</script>");//操作提示
        return "gonggao/gonggaoadd";
    }


    /**删除 公告
     *
     */
    @RequestMapping(value="/del")
    public String  del(HttpServletRequest request,Map<String,Object> map){
	
        //	Map<String,Object> map= new HashMap<String,Object>();//初始化对象
        String a=(String)request.getParameter("keyid");//request 方式获得主键id
        int id=Integer.parseInt(a);
        request.setAttribute("msg", "<script>alert('删除成功');</script>");
        gonggaodao.delete(id);//调用 删除方法
        return listpage(map,request);
    }

    /**
     * 查询gonggao信息 返回list结果 前台获取
     */
    @RequestMapping(value="/listpage")
    public String listpage(Map<String,Object> map,HttpServletRequest request){
        List<Map> list= new ArrayList<Map>();//初始化对象
        Map  map1= new HashMap();


        String ggid=(String)request.getParameter("ggid");//公告编号
        if(ggid!=null&&!ggid.equals("")){
            map1.put("ggid",ggid);//公告编号
        }
        String bt=(String)request.getParameter("bt");//标题
        if(bt!=null&&!bt.equals("")){
            map1.put("bt",bt);//标题
        }
        String nr=(String)request.getParameter("nr");//内容
        if(nr!=null&&!nr.equals("")){
            map1.put("nr",nr);//内容
        }
        String fbsj=(String)request.getParameter("fbsj");//发布时间
        if(fbsj!=null&&!fbsj.equals("")){
            map1.put("fbsj",fbsj);//发布时间
        }

        list=gonggaodao.getAll(map1);//传入 方法参数 返回gly结果集
        System.out.println("listsize="+list.size());

        map.put("list", list);//传递参数
        return "gonggao/gonggaolist";
    }

    /**
     * 查询gonggao信息 返回list结果 前台获取
     */
    @RequestMapping(value="/list")
    public String list(Map<String,Object> map,HttpServletRequest request){
        List<Map> list= new ArrayList<Map>();//初始化对象
        Map  map1= new HashMap();


        String ggid=(String)request.getParameter("ggid");//公告编号
        if(ggid!=null&&!ggid.equals("")){
            map1.put("ggid",ggid);//公告编号
        }
        String bt=(String)request.getParameter("bt");//标题
        if(bt!=null&&!bt.equals("")){
            map1.put("bt",bt);//标题
        }
        String nr=(String)request.getParameter("nr");//内容
        if(nr!=null&&!nr.equals("")){
            map1.put("nr",nr);//内容
        }
        String fbsj=(String)request.getParameter("fbsj");//发布时间
        if(fbsj!=null&&!fbsj.equals("")){
            map1.put("fbsj",fbsj);//发布时间
        }

        list=gonggaodao.getAll(map1);//传入 方法参数 返回gly结果集
        System.out.println("listsize="+list.size());

        map.put("list", list);//传递参数
        return "gonggao/list";
    }
	/**
	公告详情信息
	*/
    @RequestMapping(value="/detail")
    public String detail(Map<String,Object> map,HttpServletRequest request){

        String keyid=(String)request.getParameter("keyid");//request 方式获得主键id
         gonggao bean=new gonggao();//初始化对象
        bean=gonggaodao.getgonggaoByID(Integer.parseInt(keyid));//根据id返回 gonggao对象数据


		request.setAttribute("ggid", bean.getGgid());//公告编号

		request.setAttribute("bt", bean.getBt());//标题

		request.setAttribute("nr", bean.getNr());//内容

		request.setAttribute("fbsj", bean.getFbsj());//发布时间

       


        return "gonggao/gonggaodetail";
    }


三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件src\main\resources 下的 jdbc.properties 更改对应数据库连接配置
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspxuanke.sql 系统名称xuanke
4、地址:login.jsp

四 系统实现


 

代码下载

https://download.csdn.net/download/qq_41221322/89083073

需要源码 其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

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

相关文章

二分法题集1

1 二分查找 分析&#xff1a; 这是一道很简单的二分法题&#xff0c;定义两个指针和中间值middle&#xff0c;判断middle对应数组值与目标值的大小关系&#xff0c;从而对left和right进行修改。由于太过基础&#xff0c;代码简单基础就不多赘述。 目录 1 二分查找 分析&…

PyQt PySide6零基础入门与项目实战视频教程

目录 课程亮点课程大纲第一章&#xff1a;基础篇 PySide6开发环境安装第二章 控件与布局篇 PySide6常用控件与界面布局使用介绍第三章 信号槽与事件机制第四章 QMainWindow应用篇第五章 样式表qss与自定义控件第六章 图表与曲线第七章 数据库编程第八章 项目实战&#xff1a;高…

FJSP:小龙虾优化算法(Crayfsh optimization algorithm,COA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题&#xff08;Flexible Job Shop Scheduling Problem&#xff0c;FJSP&#xff09;&#xff0c;是一种经典的组合优化问题。在FJSP问题中&#xff0c;有多个作业需要在多个机器上进行加工&#xff0c;每个作业由一系列工序组成&a…

二叉树的介绍

学习堆排序时先了解下二叉树&#xff0c;因为堆排序中使用了二叉树。 一、二叉树介绍 二叉树&#xff08;binary tree&#xff09;树的每个节点最多有2个孩子节点。注意&#xff0c;这里是最多有2个&#xff0c;也可能只有1个&#xff0c;或者没有孩子节点。 二叉树结构如图…

极客时间: 用 Word2Vec, LangChain, Gemma 模拟全本地检索增强生成(RAG)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

「 典型安全漏洞系列 」11.身份验证漏洞详解

身份验证是验证用户或客户端身份的过程。网站可能会暴露给任何连接到互联网的人。这使得健壮的身份验证机制成为有效的网络安全不可或缺的一部分。 1. 什么是身份验证 身份验证即认证&#xff0c;是验证给定用户或客户端身份的过程。身份验证漏洞使攻击者能够访问敏感数据和功…

RobotFramework测试框架(12)--第三方库

Library 关于射频指南 |机器人框架 (robotframework.org) 使用RF需要使用Library&#xff0c;常用的第三方库如下&#xff1a; 在web浏览器中进行web应用程序测试可以使用的库是 Selenium Library 在内部使用流行的 Selenium 工具的 Web 测试库Browser Library 由 Playwri…

ThingsBoard通过MQTT发送遥测数据

MQTT基础 客户端 MQTT连接 遥测上传API 案例 MQTT基础 MQTT是一种轻量级的发布-订阅消息传递协议&#xff0c;它可能最适合各种物联网设备。 你可以在此处找到有关MQTT的更多信息&#xff0c;ThingsBoard服务器支持QoS级别0&#xff08;最多一次&#xff09;和QoS级别1&…

【前沿模型解析】潜在扩散模 1 | LDM第一阶段-感知图像压缩总览

文章目录 0 开始~1 感知压缩的目的2 自回归编码器-解码器生成模型一览2.1 AE 自编码器2.2 VAE 变分自编码器2.3 VQ-VAE2.4 VQ-GAN 3 代码部分讲解总览 0 开始~ 从今天起呢&#xff0c;我们会剖析LDM&#xff08;潜在扩散模型&#xff09; 从去年开始&#xff0c;大量的生成模…

蓝桥杯嵌入式(G431)备赛笔记——按键模块设计

目录 cubeMX配置: 代码模板: 最终模板 注意: cubeMX配置: 原理图 引脚配置为上拉模式 定时器 使用定时器3(通用定时器,使用外部晶振,内部时钟),分频系数为80(从0开始则为80-1),则每1s 1m次,定时评率为为10000,对应1s 1m/10000次,频率为10ms每次 一定记得开启…

【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图&#xff0c;文末附完整代码 小提琴图是一种常用的数据可视化工具…

java小作业(4)--编写一个类(第一遍)

1.题目&#xff1a; 2.官方代码&#xff1a; // 宠物基类 class Pet {protected double foodPricePerJin; // 食物单价&#xff08;元/斤&#xff09; protected double foodQuantityPerDay; // 每天所需食物量&#xff08;斤&#xff09; // 计算每天的食物花费 public…

Prefetch

Prefetch &#xff08;<link rel"prefetch">&#xff09; 是一种浏览器优化&#xff0c;它允许我们在需要后续路由或页面之前获取可能需要的资源。可以通过几种方式实现预取。它可以在 HTML 中以声明方式完成&#xff08;例如在下面的示例中&#xff09;&#…

什么是广播系统语言传输指数 STIPA

基础知识 通过广播系统播放一个确定的信号&#xff08;STIPA 测试信号&#xff09;&#xff0c;再在待测点测量其到达后的质量即可。IEC 60268-16 标准中定义通过单一值表示清晰度结果&#xff0c;0 表示完全无法理解&#xff0c;1 表示完美理解。测量单位是 STI&#xff08;语…

Linux文件种类、扩展名与目录配置详解

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 二、Linux文件种类 1、纯…

Spring的事务详解

Spring的事务详解 一&#xff0c;什么是Spring事务 Spring 事务是 Spring 框架提供的一种对事务进行管理的机制。在使用 Spring 事务时&#xff0c;可以通过注解或编程方式将需要进行事务管理的方法和代码块标记为事务性操作&#xff0c;当这些操作被执行时&#xff0c;Spring…

数据库基础:概念、分类、作用和特点

文章目录 概要DB-Engines 排名数据库的分类数据库的作用数据库的特点数据库的应用小结 概要 数据库是按照数据结构来组织、存储和管理数据的仓库。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库可以被视为电子化的文件柜&#xff0c;用…

详细分析Python爬虫中的xpath(附Demo)

目录 前言1. 基本知识2. 常用API3. 简易Demo 前言 关于爬虫的基本知识推荐阅读&#xff1a;Python爬虫从入门到应用&#xff08;超全讲解&#xff09; 该知识点需要提前安装相关依赖&#xff1a;pip install lxml 1. 基本知识 XPath&#xff08;XML Path Language&#xf…

torchvision中的数据集使用

torchvision中的数据集使用 使用和下载CIFAR10数据集 输出测试集中的第一个元素&#xff08;输出img信息和target&#xff09; 查看分类classes 打断点–>右键Debug–>找到classes 代码 import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./data…

数据结构|排序总结(1)|直接插入排序

排序分类 插入排序&#xff1a;直接插入排序&#xff0c;希尔排序 选择排序&#xff1a;选择排序&#xff0c;堆排序 交换排序&#xff1a;冒泡排序&#xff0c;快速排序 归并排序 插入排序 直接插入排序 相当于摸牌&#xff0c;例如我们现在手上有{2&#xff0c;4&#xff0…