基于SSM的“实习支教中小学学校信息管理系统”的设计与实现(源码+数据库+文档)
-
开发语言:Java
-
数据库:MySQL
-
技术:SSM
-
工具:IDEA/Ecilpse、Navicat、Maven
系统展示
系统功能结构图
主页
注册页面
师资力量界面
个人后台界面
工作信息管理
考核信息管理
管理员后台
分配信息管理
摘要
本系统使用JSP语言和MySQL数据库开发,为各位老师、学生提供了学校信息查询、优秀教师展示、校园简介查看等多种功能,让学生和老师们不需要再通过打电话和发消息就可以进行学校信息的查看,在极大地满足学生们进行了解学校的需求的同时,还在让每位支教的老师可以更好地管理自己的分配任务及考核目标等。
研究的背景及意义
随着当今社会计算机技术发展越来越迅速,传统的通过人工记录进行支教数据管理的方式逐渐没落,这是不能避免的。不只是支教老师的数据管理方式,其实人们生活中的各个领域都发生了改变,人们的生活质量也在不断提升。一个支教学校的支教管理工作其实是非常重要的,首先这可以体现一个学校为学生服务的态度,其次支教教师的数据管理是学习日常重要的工作之一,所以研发一套可以提高支教老师对教学数据管理效率的系统对学校的发展也是非常关键的事情。
研究思路
本系统的开发遵循着软件工程学的设计原则,在决定自己的毕业设计做什么之前会进行项目的前期调研和可行性分析,如果可行的话就对项目进行立项。在项目立项之后会对整体的功能进行需求分析和数据库设计,这可以保证后期编码的顺利进行。在所有的前期准备工作完成之后会对所有的功能模块进行计划,保证在某一个时间段完成对应的功能。最后就是项目的编码与测试,这两者最好可以同时进行,在保证开发效率的同时还能提升测试的准确性。
课题研究内容
本系统的开发可以为准备支教的大学生和学校的管理人员们提供巨大的帮助,本系统的用户权限分为三个,分别为注册用户、支教老师和管理员用户,本系统可以在大学生支教之前记录支教老师的基本信息,支教的老师可以通过本系统进行教学任务和考核任务的查看,而管理员可以通过本系统了解每位支教老师的工作情况,并且可以根据老师的工作情况合理地安排任务或考核。本系统的实现采用了JSP+MYSQL的开发模式,编程使用的工具为Eclipse,数据库选用的是MYSQL数据库。
部分源码
@Controller
public class XinwentongzhiController {
@Resource
private XinwentongzhiServer xinwentongzhiService;
//
@RequestMapping("showXinwentongzhi.do")
public String showXinwentongzhi(int id,ModelMap map,HttpSession session){
/* Map<String,Object> bmap=new HashMap<String,Object>();
bmap.put("uid", id);*/
// map.put("blist", xinwentongzhiService.getAll(bmap));
map.put("xinwentongzhi", xinwentongzhiService.getById(id));
return "read";
}
@RequestMapping("addXinwentongzhi.do")
public String addXinwentongzhi(HttpServletRequest request,Xinwentongzhi xinwentongzhi,HttpSession session){
Timestamp time=new Timestamp(System.currentTimeMillis());
//Users u=(Users)session.getAttribute("user");
/*if(u==null||u.equals("")){
return "redirect:showIndex.do";
}else{*/
xinwentongzhi.setAddtime(time.toString().substring(0, 19));
xinwentongzhiService.add(xinwentongzhi);
//session.setAttribute("backxx", "添加成功");
//session.setAttribute("backurl", "xinwentongzhiList.do?lb="+request.getParameter("leibie"));
//return "redirect:postback.jsp";
return "redirect:xinwentongzhiList.do?ok=1&lb="+request.getParameter("leibie")+"";
/*}*/
}
// 处理编辑
@RequestMapping("doUpdateXinwentongzhi.do")
public String doUpdateXinwentongzhi(int id,ModelMap map,Xinwentongzhi xinwentongzhi){
xinwentongzhi=xinwentongzhiService.getById(id);
map.put("xinwentongzhi", xinwentongzhi);
return "xinwentongzhi_updt";
}
// 后台详细
@RequestMapping("XinwentongzhiDetail.do")
public String XinwentongzhiDetail(int id,ModelMap map,Xinwentongzhi xinwentongzhi){
xinwentongzhi=xinwentongzhiService.getById(id);
map.put("xinwentongzhi", xinwentongzhi);
return "xinwentongzhi_detail";
}
// 前台详细
@RequestMapping("xwtzDetail.do")
public String xwtzDetail(int id,ModelMap map,Xinwentongzhi xinwentongzhi){
xinwentongzhi=xinwentongzhiService.getById(id);
map.put("xinwentongzhi", xinwentongzhi);
return "gg_detail";
}
//
@RequestMapping("updateXinwentongzhi.do")
public String updateXinwentongzhi(int id,ModelMap map,Xinwentongzhi xinwentongzhi){
xinwentongzhiService.update(xinwentongzhi);
return "redirect:xinwentongzhiList.do";
}
// 所有List
// @RequestMapping("xinwentongzhiList.do")
// public String xinwentongzhiList(ModelMap map,HttpSession session){
// map.put("list", xinwentongzhiService.getAll(null));
// map.put("clist", xinwentongzhiService.getAll(null));
// return "xinwentongzhi";
// }
// 分页查询
@RequestMapping("xinwentongzhiList.do")
public String xinwentongzhiList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session,Xinwentongzhi xinwentongzhi, String biaoti, String leibie, String neirong, String shouyetupian, String dianjilv, String tianjiaren,String lb){
/*if(session.getAttribute("user")==null){
return "login";
}*/
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 5);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", 5);
if(biaoti==null||biaoti.equals("")){pmap.put("biaoti", null);}else{pmap.put("biaoti", biaoti);}
if(leibie==null||leibie.equals("")){pmap.put("leibie", null);}else{pmap.put("leibie", leibie);}
if(lb==null||lb.equals("")){pmap.put("lb", null);}else{pmap.put("lb", lb);}
if(neirong==null||neirong.equals("")){pmap.put("neirong", null);}else{pmap.put("neirong", neirong);}
if(shouyetupian==null||shouyetupian.equals("")){pmap.put("shouyetupian", null);}else{pmap.put("shouyetupian", shouyetupian);}
if(dianjilv==null||dianjilv.equals("")){pmap.put("dianjilv", null);}else{pmap.put("dianjilv", dianjilv);}
if(tianjiaren==null||tianjiaren.equals("")){pmap.put("tianjiaren", null);}else{pmap.put("tianjiaren", tianjiaren);}
int total=xinwentongzhiService.getCount(pmap);
pageBean.setTotal(total);
List<Xinwentongzhi> list=xinwentongzhiService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 1);
return "xinwentongzhi_list";
}
@RequestMapping("xwtzList.do")
public String xwtzList(@RequestParam(value="page",required=false)String page,
ModelMap map,HttpSession session,Xinwentongzhi xinwentongzhi, String biaoti, String leibie, String neirong, String shouyetupian, String dianjilv, String tianjiaren,String lb){
/*if(session.getAttribute("user")==null){
return "login";
}*/
if(page==null||page.equals("")){
page="1";
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 20);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put("pageno", pageBean.getStart());
pmap.put("pageSize", 20);
if(biaoti==null||biaoti.equals("")){pmap.put("biaoti", null);}else{pmap.put("biaoti", biaoti);}
if(leibie==null||leibie.equals("")){pmap.put("leibie", null);}else{pmap.put("leibie", leibie);}
if(lb==null||lb.equals("")){pmap.put("lb", null);}else{pmap.put("lb", lb);}
if(neirong==null||neirong.equals("")){pmap.put("neirong", null);}else{pmap.put("neirong", neirong);}
if(shouyetupian==null||shouyetupian.equals("")){pmap.put("shouyetupian", null);}else{pmap.put("shouyetupian", shouyetupian);}
if(dianjilv==null||dianjilv.equals("")){pmap.put("dianjilv", null);}else{pmap.put("dianjilv", dianjilv);}
if(tianjiaren==null||tianjiaren.equals("")){pmap.put("tianjiaren", null);}else{pmap.put("tianjiaren", tianjiaren);}
int total=xinwentongzhiService.getCount(pmap);
pageBean.setTotal(total);
List<Xinwentongzhi> list=xinwentongzhiService.getByPage(pmap);
map.put("page", pageBean);
map.put("list", list);
session.setAttribute("p", 1);
return "news";
}
@RequestMapping("deleteXinwentongzhi.do")
public String deleteXinwentongzhi(int id,HttpServletRequest request){
xinwentongzhiService.delete(id);
// return "redirect:xinwentongzhiList.do";
return "redirect:"+request.getHeader("Referer")+"&ok=2";
}
}
结论
本次毕业设计使用的是JSP+MYSQL的开发模式,在结合了自己的生活经验以及对他人进行的调查问卷之后最终完成了系统的开发,并且所有的功能都可以正常使用。在为自己通过四年的学习可以做出一个商业项目的同时也在反思自己开发的这个系统有哪些不足,最终发现在以下几个方面还有待提升点:
1、某些模块的代码结构冗余,代码执行效率差,经过思考发现可以使用面向对象思想中的继承和多态进行改进。
2、数据库的设计较为单一,并且书写SQL查询语句时只用了连接查询和相关子查询等,这会造成查询较多数据时查询速度慢的问题。改进的方法就是使用存储过程和视图来替代复杂的查询语句。
3、用户的注册和登录未与QQ或者微信真正进行连接,这方面的知识自己比较欠缺,但经过了解后发现只要在支付宝和微信的官网下载相关的接口与自己系统进行连接就有可能实现真正的相关账户登录。