• 基于SSM的学籍证明打印系统设计与实现。


    项目描述

    临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于SSM的学籍证明打印系统的设计与实现。

    功能需求

    本系统的开发采用JSP进行动态网页设计,WEB 服务器是采用开源的ApacheTomcat,数据库服务器是采用MySQL 这一图形化工具来管理数据库,开发平台采用 MyEclipse,使计算机对学生学籍证明进行处理,通过internet实现网络信息处理功能。基于B/S架构。
    1.建立学生数据库:
    (1)在学校教务处允许的情况下读取学校教务系统学生数据;
    (2)采用电子表格导入。
    2.系统前端界面的设计。
    3.中、英文不同学籍证明模板的设计。
    4.自定义支付的实现。
    5.打印系统模块:负责将数据生成报表并打印(包括数据导入、报表的生成及打印两个模块)中、英文不同学籍证明模板的设计。

    具备以下功能:

    打印系统可以连接到教务系统数据库,学生通过校园卡或者账户/密码来验证身份,然后显示个人的信息,调出信息。学生通过屏幕提示 ,自助完成学籍证明打印。也有需要管理员进行干预的自助方式,例如,管理员需要设置好不同类型的学生的方式以及收费方式,学生就可以在自助机上通过刷校园卡查询自己的成绩来选择打印,打印时根据设置来判断是否需要收费:按不同的身份可以打印的成绩单免费份数;按不同的身份设 置不同的扣费方式,比如本科生打印的费用,研究生打印的费用等。第二类的自助打印系统的流程是,学生首先在网上进行预约,学生的预约经过管理员的审核确认已经缴费 和符合其他条件以后学生就可以在预约的时间里进行打印,如果打印的时间过后,就得重新预约。(除了学籍证明,还希望有成绩单,结业证明,专业证明,绩点等等可以打印的文件)

    系统总体设计

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    部分效果图

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    数据库设计

    系统中用到了10张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。

    CREATE TABLE `apply` (
      `resourceId` varchar(255) COLLATE utf8_bin NOT NULL,
      `applyName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `applyType` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `applyContext` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `startDate` datetime DEFAULT NULL,
      `endDate` datetime DEFAULT NULL,
      `studentId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `studentName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueLi` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `userId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `userName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `authorDate` datetime DEFAULT NULL,
      `authorContext` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `authorType` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `money` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `payType` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `fileName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `fileURL` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updateTime` datetime DEFAULT NULL,
      `createTime` datetime DEFAULT NULL,
      PRIMARY KEY (`resourceId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    
    
    DROP TABLE IF EXISTS `log`;
    CREATE TABLE `log` (
      `resourceId` varchar(255) COLLATE utf8_bin NOT NULL,
      `logName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `logAddress` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updateTime` datetime DEFAULT NULL,
      `createTime` datetime DEFAULT NULL,
      PRIMARY KEY (`resourceId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    
    DROP TABLE IF EXISTS `person`;
    CREATE TABLE `person` (
      `personId` varchar(255) COLLATE utf8_bin NOT NULL,
      `personName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `password` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `role` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `personNo` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `cardNo` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `personMobile` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `sex` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      PRIMARY KEY (`personId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    
    -- ----------------------------
    DROP TABLE IF EXISTS `student`;
    CREATE TABLE `student` (
      `resourceId` varchar(255) COLLATE utf8_bin NOT NULL,
      `studentNo` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `schoolNo` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `password` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `studentName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `sex` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `birthDay` datetime DEFAULT NULL,
      `idCard` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `schoolName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueYuan` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `zhuanYe` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `className` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueLi` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `ruXueYear` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueZhi` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updateTime` datetime DEFAULT NULL,
      `createTime` datetime DEFAULT NULL,
      PRIMARY KEY (`resourceId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    
    DROP TABLE IF EXISTS `studentscore`;
    CREATE TABLE `studentscore` (
      `resourceId` varchar(255) COLLATE utf8_bin NOT NULL,
      `studentId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `studentName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueYear` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `xueQi` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `zhuanYePM` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `zhuanYeRS` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `creatorName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterId` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updaterName` varchar(255) COLLATE utf8_bin DEFAULT NULL,
      `updateTime` datetime DEFAULT NULL,
      `createTime` datetime DEFAULT NULL,
      `jd` float(3,1) DEFAULT NULL,
      PRIMARY KEY (`resourceId`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    -- ---
    -- ----------------------------
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    部分代码
    
    	@RequestMapping("findStudent")
    	public String find(ModelMap modelMap,String id,HttpServletRequest request){
    		Student student = studentService.findById(id);
    		modelMap.addAttribute("pageEntity", student);
    		
    		logService.addLogInfo(request,"查询学生个人信息","findStudent.do");
    		return "forward:/view/student/add_student.jsp";
    	}
    	@RequestMapping("updateStudent")
    	public String update(ModelMap modelMap,Student student,HttpServletRequest request,HttpServletResponse response){
    		//初始化新增的数据
    		InitEntity initEntity = new InitEntity();
    		try {
    			student = initEntity.initUpdateInfo(student, request.getSession());
    			studentService.updateStudent(student);
    			
    			logService.addLogInfo(request,"更新学生个人信息","updateStudent.do");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		String role = (String)request.getSession().getAttribute("role");
    		if(role == null || "".equals(role)){
    			return "redirect:/login.jsp";
    		}else if(!"admin".equals(role)){
    			return "redirect:/findStudent.do?id="+student.getResourceId();
    		}
    		return "redirect:/listStudent.do";
    	}
    	@RequestMapping("delteStudent")
    	public String delte(String id,HttpServletRequest request){
    		studentService.deteleStudent(id);
    		
    		logService.addLogInfo(request,"删除学生个人信息","delteStudent.do");
    		return "redirect:/listStudent.do";
    	}
    	@RequestMapping("listStudent")
    	public String list(ModelMap modelMap,HttpServletRequest request,Student student){
    		PagerList pagerList = new PagerList(request);
    		pagerList.setPageSize(StaticValue.pageSize);
    		pagerList = this.studentService.findPagerList(pagerList,student);
    		modelMap.addAttribute("pagerList", pagerList);
    		modelMap.addAttribute("searchList", student);
    		
    		logService.addLogInfo(request,"学生个人信息列表","listStudent.do");
    		return "forward:/view/student/list_student.jsp";
    	}
    	@RequestMapping("listSelectStudent")
    	public String listSelectStudent(ModelMap modelMap,HttpServletRequest request,Student student){
    		PagerList pagerList = new PagerList(request);
    		pagerList.setPageSize(StaticValue.pageSize);
    		pagerList = this.studentService.findPagerList(pagerList, student);
    		modelMap.addAttribute("pagerList", pagerList);
    		modelMap.addAttribute("searchList",  student);
    		return "forward:/view/student/select_student.jsp";
    	}
    	
    	@RequestMapping("addStudent")
    	public String add(Student student,HttpServletRequest request,HttpServletResponse response){
    		try {
    			//初始化新增的数据
    			InitEntity initEntity = new InitEntity();
    			student = initEntity.initAddInfo(student, request.getSession());
    			studentService.addStudent(student);
    			
    			logService.addLogInfo(request,"添加学生个人信息","addStudent.do");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return "redirect:/listStudent.do";
    	}
    	
    	
    	@RequestMapping("exportStudent")
    	public String export(HttpServletRequest request,HttpServletResponse response,Student student){
    		PagerList pagerList = new PagerList(request);
    		pagerList.setPageSize(999999);
    		pagerList.setPageIndex(1);
    		PagerList pagelet = this.studentService.findPagerList(pagerList,student);
    		ObjectToExcel objectToExcl = ObjectToExcel.getInstance(pagelet, null, new String[]{"主键","学生名称","密码" ,"权限","登录名","身份证","电话","性别"},
    				new String[]{"studentId","studentName","password","role","studentNo","cardNo","studentMobile","sex"}, null, null);
    		String fileId = objectToExcl.convertToExcel();
    		String root = StaticValue.ATTACH_PATH;
    		DownFileHelper.downFile(response,root,fileId);
    		return null;
    	}
    	
    	@RequestMapping("importStudent")
    	public void importExcl(@RequestParam("file") CommonsMultipartFile file,
    			HttpServletRequest request,HttpServletResponse response,Student student) throws Exception{
    		JSONObject json = new JSONObject();
    		try{
    			List<?> impList = ExcelToObject.getInstance().parseExcel(file.getInputStream(),
    					new String[]{"studentNo","schoolNo","password","studentName","sex","birthDay","idCard","schoolName","xueYuan","zhuanYe","className","xueLi","ruXueYear","xueZhi"},
    					Student.class);
    			//List studentList = new ArrayList();
    			if(impList != null && impList.size() > 0){
    				//自己在设置自己需要的值
    				for(Object obj:impList){
    					Student detail = (Student)obj;
    					//studentList.add(detail);
    					this.studentService.addStudent(detail);
    				}
    				logService.addLogInfo(request,"导入学生个人信息","importStudent.do");
    				json.put("result", true);
    				json.put("msg", "导入成功!导入"+impList.size()+"条数据");
    			}else{
    				json.put("result", false);
    				json.put("msg", "导入失败!导入的excel没数据或解析excel失败");
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    			json.put("result", false);
    			json.put("msg", e.getMessage());
    		}
    		response.setCharacterEncoding("UTF-8");
    		response.getWriter().print(json.toString());
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    安装部署需求

    eclipse、idea运行启动

    系统部署

    系统开发后,在生产环境配置项目运行环境,具体步骤如下:
    安装linux或者windows10操作系统;
    安装JDK1.8并配置环境变量;
    安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
    在IDEA中编辑进行打包;
    下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

    本项目用到的技术和框架

    1.开发语言:Java
    2.开发模式:B/S
    3.数据库:MySQL
    4.框架:jsp+SSM

    本项目中的关键点

    此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

    环境工具

    开发工具 Eclipse/IDEA
    语言 JDK1.8 、jsp、CSS、SSM
    硬件:笔记本电脑;
    软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
    操作系统:Windows 10;
    其它软件:截图工具、常用浏览器;
    以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

  • 相关阅读:
    有什么软件能实现erp、crm、oa、财务系统一体化?
    JavaScript算法44- 最小处理时间(leetCode:2895middle)周赛
    Python知识点——文件和数据格式化
    混凝土板材及砌块生产线数字孪生可视化管理系统,实现智慧工厂车间智能化数字化管理
    成都力寰璨泓科技有限公司抖音小店购物新体验
    如何快速下载mysql的不同版本并启动mysql服务?
    VSCode:清理ipch缓存
    OpenShift AI - 部署并使用 LLM 模型
    C++基础语法(一)
    实时音视频通信的指标和主要矛盾
  • 原文地址:https://blog.csdn.net/mxg74110/article/details/128065035