大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。
今天将为大家分析一个基于web的师资管理系统(当今世界是一个信息高度发展的世界,计算机技术的高度发展,并且广泛的运用到生活中的各个领域,给人类带来了快的进步的同时也带来了进一步的革新。特别是,近年来,高校的办学规模、教师队伍在不断扩大增加,这些因素导致我们传统的教学管理模式已不适用于高速发展的信息时代模式,高校教师的各方面素质也在不断提高,高校的管理方式也相应的需有所变化。在这样的需求下,完善、成熟的师资管理系统应运而生,根据自身特点建立师资管理系统,也就成了每个高校所必备的了,从而更好的提高办学效率。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。基于web的师资管理系统为一个 后台项目。
为了完成该系统,我们首先需要对该系统进行需求分析。一个基于web的师资管理系统应包含用户角色有管理员、教师、学校。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
为了完成系统的功能需要为学校设置所需教师表,记录所需教师信息。在所需教师表中定义了两者的关联关系,其中所需教师的学校与学校的mingzi字段对应
。
总结得出该系统所有数据为:管理员(admin)、教师(jiaoshi)、学校(xuexiao)、所需教师(suoxujiaoshi)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
教师表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 教师id mingzi | VARCHAR(255) | | 名字 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码 renkekemu | VARCHAR(255) | | 任课科目 renkexuexiao | VARCHAR(255) | | 任课学校
学校表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 学校id mingzi | VARCHAR(255) | | 名字 fuzeren | VARCHAR(255) | | 负责人 lianxifangshi | VARCHAR(255) | | 联系方式 usernam | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
所需教师表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 所需教师id kemu | VARCHAR(255) | | 科目 xuexiao | VARCHAR(255) | | 学校 xuexiaoid | VARCHAR(255) | | 学校id baomingrenshu | VARCHAR(255) | | 报名人数 shifoukebaoming | VARCHAR(255) | | 是否可报名
建表语句
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggshiziguanli -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘管理员id‘,`username` VARCHAR(255) DEFAULT NULL COMMENT ‘账号‘,`password` VARCHAR(255) DEFAULT NULL COMMENT ‘密码‘,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘管理员‘; -- ---------------------------- DROP TABLE IF EXISTS `t_jiaoshi`; CREATE TABLE `t_jiaoshi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘教师id‘,`mingzi` VARCHAR(255) DEFAULT NULL COMMENT ‘名字‘,`username` VARCHAR(255) DEFAULT NULL COMMENT ‘账号‘,`password` VARCHAR(255) DEFAULT NULL COMMENT ‘密码‘,`renkekemu` VARCHAR(255) DEFAULT NULL COMMENT ‘任课科目‘,`renkexuexiao` VARCHAR(255) DEFAULT NULL COMMENT ‘任课学校‘,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘教师‘; -- ---------------------------- DROP TABLE IF EXISTS `t_xuexiao`; CREATE TABLE `t_xuexiao` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘学校id‘,`mingzi` VARCHAR(255) DEFAULT NULL COMMENT ‘名字‘,`fuzeren` VARCHAR(255) DEFAULT NULL COMMENT ‘负责人‘,`lianxifangshi` VARCHAR(255) DEFAULT NULL COMMENT ‘联系方式‘,`usernam` VARCHAR(255) DEFAULT NULL COMMENT ‘账号‘,`password` VARCHAR(255) DEFAULT NULL COMMENT ‘密码‘,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘学校‘; -- ---------------------------- DROP TABLE IF EXISTS `t_suoxujiaoshi`; CREATE TABLE `t_suoxujiaoshi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘所需教师id‘,`kemu` VARCHAR(255) DEFAULT NULL COMMENT ‘科目‘,`xuexiao` VARCHAR(255) DEFAULT NULL COMMENT ‘学校‘,`xuexiaoid` INT(11) DEFAULT NULL COMMENT ‘学校id‘,`baomingrenshu` VARCHAR(255) DEFAULT NULL COMMENT ‘报名人数‘,`shifoukebaoming` VARCHAR(255) DEFAULT NULL COMMENT ‘是否可报名‘,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘所需教师‘;
学校操作控制层
package org.mypro.front; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.List; import javax.jms.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mypro.dao.XuexiaoMapper; import org.mypro.entity.Xuexiao; import org.mypro.entity.XuexiaoExample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping(value = "/") public class XuexiaoController { private static final Log logger = LogFactory.getLog(XuexiaoController.class); @Autowired private XuexiaoMapper xuexiaodao; //定义方法tianjiaxuexiao,响应页面tianjiaxuexiao请求 @RequestMapping(value = "tianjiaxuexiao") public String tianjiaxuexiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) { logger.debug("XuexiaoController.tianjiaxuexiao ......"); if(backurl != null && backurl.indexOf("tianjiaxuexiao.action") == -1){ return "forward:/" + backurl; } return "tianjiaxuexiao"; } @RequestMapping(value = "tianjiaxuexiaoact") public String tianjiaxuexiaoact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Xuexiao xuexiao,String backurl) throws IOException { logger.debug("XuexiaoController.tianjiaxuexiaoact ......"); xuexiaodao.insert(xuexiao); request.setAttribute("message", "添加学校成功"); if(backurl != null && backurl.indexOf("tianjiaxuexiaoact.action") == -1){ return "forward:/" + backurl; } //返回tianjiaxuexiao方法 return "forward:/tianjiaxuexiao.action"; } //定义xuexiaoguanli方法响应页面请求 @RequestMapping(value = "xuexiaoguanli") public String xuexiaoguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) { logger.debug("XuexiaoController.xuexiaoguanli ......"); XuexiaoExample example = new XuexiaoExample(); List xuexiaoall = xuexiaodao.selectByExample(example); request.setAttribute("xuexiaoall", xuexiaoall); if(backurl != null && backurl.indexOf("xuexiaoguanli.action") == -1){ return "forward:/" + backurl; } return "xuexiaoguanli"; } // 定义 xuexiaochakan方法 @RequestMapping(value = "xuexiaochakan") public String xuexiaochakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) { logger.debug("XuexiaoController.xuexiaochakan ......"); XuexiaoExample example = new XuexiaoExample(); List xuexiaoall = xuexiaodao.selectByExample(example); request.setAttribute("xuexiaoall", xuexiaoall); if(backurl != null && backurl.indexOf("xuexiaochakan.action") == -1){ return "forward:/" + backurl; } return "xuexiaochakan"; } // 定义 xiugaixuexiao方法 @RequestMapping(value = "xiugaixuexiao") public String xiugaixuexiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){ logger.debug("XuexiaoController.xiugaixuexiao ......"); Xuexiao xuexiao = xuexiaodao.selectByPrimaryKey(id); request.setAttribute("xuexiao", xuexiao); if(backurl != null && backurl.indexOf("xiugaixuexiao.action") == -1){ return "forward:/" + backurl; } return "xiugaixuexiao"; } // 定义xiugaixuexiaoact处理学校修改 @RequestMapping(value = "xiugaixuexiaoact") public String xiugaixuexiaoact(HttpServletRequest request, HttpServletResponse response,Xuexiao xuexiao,HttpSession session,String backurl) throws IOException { logger.debug("XuexiaoController.xiugaixuexiaoact ......"); xuexiaodao.updateByPrimaryKeySelective(xuexiao); request.setAttribute("message", "修改学校信息成功"); if(backurl != null && backurl.indexOf("xiugaixuexiaoact.action") == -1){ return "forward:/" + backurl; } return "forward:/xuexiaoguanli.action"; } // 定义shanchuxuexiao,处理删除学校 @RequestMapping(value = "shanchuxuexiao") public String shanchuxuexiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){ logger.debug("XuexiaoController.shanchuxuexiao ......"); xuexiaodao.deleteByPrimaryKey(id); request.setAttribute("message", "删除学校成功"); if(backurl != null && backurl.indexOf("shanchuxuexiao.action") == -1){ return "forward:/" + backurl; } return "forward:/xuexiaoguanli.action"; } // 定义sousuoxuexiao方法,处理搜索操作 @RequestMapping(value = "sousuoxuexiao") public String sousuoxuexiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) { logger.debug("XuexiaoController.sousuoxuexiao ......"); XuexiaoExample example = new XuexiaoExample(); XuexiaoExample.Criteria criteria = example.createCriteria(); if(search != null){ criteria.andMingziLike("%" + search + "%"); } List xuexiaoall = xuexiaodao.selectByExample(example); request.setAttribute("xuexiaoall", xuexiaoall); if(backurl != null && backurl.indexOf("sousuoxuexiao.action") == -1){ return "forward:/" + backurl; } return "sousuoxuexiao"; } // 定义XuexiaopinglunMapper@RequestMapping (value = "xuexiaoxiangqing") public String xuexiaoxiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {logger. debug("XuexiaoController.xuexiaoxiangqing ......");Xuexiao xuexiao = xuexiaodao.selectByPrimaryKey(id);request. setAttribute("xuexiao", xuexiao); if(backurl != null && backurl.indexOf("xuexiaoxiangqing.action") == -1){ return "forward:/" + backurl; } return "xuexiaoxiangqing"; } // 上传文件图片等 public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException { // 根据当前时间生成时间字符串 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS"); String res = sdf.format(new Date()); // uploads文件夹位置 String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/"); // 原始名称 String originalFileName = file.getOriginalFilename(); // 新文件名 String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf(".")); // 创建年月文件夹 Calendar date = Calendar.getInstance(); File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1)); // 新文件 File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName); // 判断目标文件所在目录是否存在 if( !newFile.getParentFile().exists()) { // 如果目标文件所在的目录不存在,则创建父目录newFile. getParentFile().mkdirs(); } System.out.println(newFile); // 将内存中的数据写入磁盘file. transferTo(newFile); // 完整的url String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName; return fileUrl; }}
原文地址:https://www.cnblogs.com/qwcx/p/11520824.html
时间: 2024-10-27 00:21:36