项目描述
临近学期结束,还是毕业设计,你还在做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;
-- ---
-- ----------------------------
部分代码
@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<Student> studentList = new ArrayList<Student>();
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());
}
}
安装部署需求
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;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。