学生管理系统(SSM简易版)总结我没有三颗心脏

为了完成这个项目,需要掌握如下技术:

之前虽然已经使用Servlet+JSP完成了简单的开发,这次使用SSM仅仅是重构工作,但我们仍然按照商业项目的开发步骤来一步一步完成,进一步熟悉这个过程,重复的部分我就直接复制了。

首先要确定要做哪些功能

根据需求,那么只需要一个student表就能够完成功能了。

DROPDATABASEIFEXISTSstudent;CREATEDATABASEstudentDEFAULTCHARACTERSETutf8;创建学生表:student不用学生学号(studentID)作为主键的原因是:不方便操作,例如在更新数据的时候,同时也要更改学号,那这样的操作怎么办呢?所以我们加了一个id用来唯一表示当前数据。CREATETABLEstudent(idint(11)NOTNULLAUTO_INCREMENT,student_idint(11)NOTNULLUNIQUE,namevarchar(255)NOTNULL,ageint(11)NOTNULL,sexvarchar(255)NOTNULL,birthdaydateDEFAULTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8;MySQL在Windows下不区分大小写,但在Linux下默认区分大小写,因此,数据库名、表明、字段名都不允许出现任何大写字母,避免节外生枝。

就是设计界面,在商业项目中,这是很重要的一步,我们可以解除界面原型,低成本、高效率的与客户达成需求的一致性。

这个项目一共就分为两个页面:

在真正开始编写代码之前,我们首先需要先来搭建好我们的SSM环境。

首先新建工程,选择Maven标签,然后勾选上【Createfromarchetype】选择webapp:

点击下一步,填写上【GroupId】和【ArtifactId】:

然后是确认项目路径,这一步你可以看到Maven配置中的参数,不需要做改动,直接下一步就可以(图中的路径是我配置的本地Maven仓库的地址):

确认项目名称和路径,点击【Finish】即可:

等待一会儿,控制台就会有创建成功的提示信息,我们把【EnableAuto-Import】点上,这个提示会在每次pom.xml有改动时出现,自动导入,省掉麻烦:

下面就是Maven风格的webapp的默认目录结构:

遵循Maven的统一项目结构,我们搭建出项目的完整目录结构如下图:

这里的目录建好之后还需要设置一下,让IDEA识别目录作用,选择【File】>【ProjectStructure】:

设置好之后点击OK,即完成了项目目录的搭建。

%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n以上就完成了SSM框架的基本配置:

实体类仅仅是对数据库中表的一一映射(表中字段名应该和实体类中的名称一一对应),同时可能还需要兼顾对业务能力的支持。

在【cn.wmyskxz.dao】包下创建【StudentDao】接口:

packagecn.wmyskxz.dao;importcn.wmyskxz.entity.Student;importjava.util.List;publicinterfaceStudentDao{ intgetTotal(); voidaddStudent(Studentstudent); voiddeleteStudent(intid); voidupdateStudent(Studentstudent); StudentgetStudent(intid); Listlist(intstart,intcount);}然后在【resources/mapper】下创建好对应的映射文件【StudengDao.xml】:

在【cn.wmyskxz.service】包下创建【StudentService】接口:

packagecn.wmyskxz.service;importcn.wmyskxz.entity.Student;importjava.util.List;publicinterfaceStudentService{ /** *获取到Student的总数 *@return */ intgetTotal(); /** *增加一条数据 *@paramstudent */ voidaddStudent(Studentstudent); /** *删除一条数据 *@paramid */ voiddeleteStudent(intid); /** *更新一条数据 *@paramstudent */ voidupdateStudent(Studentstudent); /** *找到一条数据 *@paramid *@return */ StudentgetStudent(intid); /** *列举出从start位置开始的count条数据 *@paramstart *@paramcount *@return */ Listlist(intstart,intcount);}并在相同包名下创建实现类【StudentServiceImpl】:

packagecn.wmyskxz.service;importcn.wmyskxz.dao.StudentDao;importcn.wmyskxz.entity.Student;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;/***StudentService的实现类**@author:@我没有三颗心脏*@create:2018-04-23-下午13:51*/@ServicepublicclassStudentServiceImplimplementsStudentService{ @Autowired StudentDaostudentDao; publicintgetTotal(){ returnstudentDao.getTotal(); } publicvoidaddStudent(Studentstudent){ studentDao.addStudent(student); } publicvoiddeleteStudent(intid){ studentDao.deleteStudent(id); } publicvoidupdateStudent(Studentstudent){ studentDao.updateStudent(student); } publicStudentgetStudent(intid){ returnstudentDao.getStudent(id); } publicListlist(intstart,intcount){ returnstudentDao.list(start,count); }}⑧功能开发在【cn.wmyskxz.controller】包下创建【StudentController】控制器,代码基本上都是复制黏贴之前在Servlet中的代码:

packagecn.wmyskxz.util;publicclassPage{ intstart; //开始数据 intcount; //每一页的数量 inttotal; //总共的数据量 publicPage(intstart,intcount){ super(); this.start=start; this.count=count; } publicbooleanisHasPreviouse(){ if(start==0) returnfalse; returntrue; } publicbooleanisHasNext(){ if(start==getLast()) returnfalse; returntrue; } publicintgetTotalPage(){ inttotalPage; //假设总数是50,是能够被5整除的,那么就有10页 if(0==total%count) totalPage=total/count; //假设总数是51,不能够被5整除的,那么就有11页 else totalPage=total/count+1; if(0==totalPage) totalPage=1; returntotalPage; } publicintgetLast(){ intlast; //假设总数是50,是能够被5整除的,那么最后一页的开始就是40 if(0==total%count) last=total-count; //假设总数是51,不能够被5整除的,那么最后一页的开始就是50 else last=total-total%count; last=last<00:last; returnlast; }//各种setter和getter}totalPage是计算得来的数,用来表示页码一共的数量在首页显示的StudentList用page的参数来获取:

Liststudents=studentService.list(page.getStart(),page.getCount());并且在映射文件中用LIMIT关键字:

SELECT*FROMstudentORDERBYstudent_iddesclimit#{param1},#{param2}第一个参数为start,第二个参数为count这样就能根据分页的信息来获取到响应的数据

编写分页栏:

1.写好头和尾

.....2.写好这两个功能按钮使用标签来增加边界判断,如果没有前面的页码了则设置为disable状态

3.完成中间页码的编写从0循环到page.totalPage-1,varStatus相当于是循环变量

//获取分页参数intstart=0;intcount=10;try{ start=Integer.parseInt(request.getParameter("page.start")); count=Integer.parseInt(request.getParameter("page.count"));}catch(Exceptione){}....//共享page数据request.setAttribute("page",page);Date转换的问题最开始的时候,我们看到页面上显示的日期是这样的格式:

这显然是我们不希望看到的

重新部署文件,然后刷新页面,就能看到我们希望的效果啦:

项目很简单,仅仅也只是在数据库增删改查的基础上增加了一个界面,我们来动手改一改。

第一个想到的就是删除提示,没有删除提示是很要命的一件事情,如果手滑了一下那可能就悲剧了....

首先我们在顶部的标签中的

THE END
1.毕业设计(论文)智能管理系统输入您的登录账号和联系电话 登录账号 联系电话 验证码 上一步提交下一步http://sjjx.njucm.edu.cn/bylw/ForgetPassword.aspx
2.基于SSM学生管理系统基于SSM框架实现学生管理系统 标签(空格分隔): ssm java springmvc mybatis SSM框架的搭建 创建Maven项目 创建Maven项目,并创建一个java文件夹作为源代码文件夹。 Pom.xml文件的配置 Pom.xml文件具体的作用是实现动态网页下载jar包的文件,只需通过书写相应的jar包版本信息,通过reimport下载所需要的版本。(例如下图的...https://www.jianshu.com/p/bffd50ce2f36
3.基于SSM的中学学生学籍管理系统设计与实现本系统是后台使用SSM框架、前端使用JSP结合jQuery、CSS等技术、数据存储使用MySQL数据库实现的一款中学学生学籍管理系统。在系统中涉及到了系统管理员和学生两个权限,其中系统管理员负责基本信息如加分项信息、扣分项信息、维护学生信息、班级信息、课程信息,且可以上传学生课程成绩、加分项成绩和扣分项成绩;而学生权限则可...https://developer.aliyun.com/article/1375349
4.my该存储库是对*黄宇辉*的sms-ssm 进行复现,旨在学习如何使用SSM框架。 sms-ssm项目信息: 项目简介:一个基于SSM的学生管理系统 : 代码注释详细,逻辑结构清晰,非常具有参考,学习价值哟 ! 数据库中默认的管理员身份信息 : 账户名 : root , 密码 123456 项目原地址:sms-ssm 项目展示链接:here ...https://gitee.com/kleinlsl/my-SMS/
5.ssm学生信息管理系统地址http://localhost:8080/EIMS/login.jsp 账号123 123 eclipse mysql5 jdk1.8 班级表(姓名 电话 班级 邮箱) 缴费表(姓名 电话 班级 学院 学校 学费 辅导员) 事物表(姓名 意见 班委) 管理表(账号 密码) 成员表(姓名 性别 年龄 学历 班级 时间 职务 政治面貌)...http://www.weiguanke.cn/archives/12465
6.SSM学生信息管理系统.zip基于ssm学生信息管理系统.zip 上传者:2301_78145658时间:2024-04-01 基于SSM的学生信息管理系统.zip 基于SSM的学生信息管理系统,源码+数据库文件 搭建步骤 1、数据库导入,新建数据库student_manager,将student_manager.sql文件导入并运行。 2、打开项目,使用idea打开项目,在src/main/resources/jdbc.properties中修改数据...https://www.iteye.com/resource/qq_36224470-12098003
1.基于SSM+Jsp+Mysql的学生信息管理系统jsp+ssm+mysql本文介绍了使用Java、SSM技术开发的学生信息管理系统,包括JSP、JDK1.8、Tomcat7、MySQL5.7及Maven3.3.9等技术。系统功能涵盖了登录、信息管理、教师管理等,旨在提高教育信息化水平和管理效率。 摘要由CSDN通过智能技术生成 开发语言:Java 框架:ssm 技术:JSP https://blog.csdn.net/shmp54/article/details/136984060
2.SSM在线学生管理系统共48课时Java课程适合毕业学生,毕业设计指导性项目,适合积累项目经验。 你将会学到: 掌握学生管理系统设计 课程简介: 该课程内容丰富,是基于SSM设计而成的学生管理系统。该系统包含学生老师注册,上传头像,学生老师登录,注销登录,班级管理,老师管理,学生管理,课程管理等内容,学生权限部分需要单独看权限部分的视频。 系统内容多,是您学习...https://edu.51cto.com/course/25375.html
3.基于SSM的校园学生管理系统的设计与实现(文末附源码)随着各高校教育规模的不断扩大,招生人数的激增,有关高校学生的信息量也成倍增长,各个高校在信息管理的工作上都不同程度地受到了挑战。面对急需解决的学生信息管理问题, 这就需要一个校园学生管理系统来提高学生信息管理工作的效率。 本系统是基于SSM框架的校园学生管理系统。主要是以年级、班级为单位,进行老师和学生...https://cloud.tencent.com/developer/article/1964519
4.基于SSM框架的学生信息管理系统【摘要】:随着互联网的快速发展,高校管理系统的信息化平台已日益成熟。该文通过对学生信息管理系统的需求进行分析,采用SSM(Spring+SpringMVC+Mybatis)框架开发出基于B/S模式的学生信息管理系统。该系统以紫金学院实际工作操作为基准,实现了信息管理、课程信息管理、成绩信息管理等功能。 https://www.cnki.com.cn/Article/CJFDTotal-DNZS201928040.htm
5.图灵课堂Java就业培训教程视频课程大纲3-5 学生管理系统 第四章: 就业课(2.1)-面向对象-继承-多态 4-1 继承 4-2 多态 4-3 接口 4-4 内部类 第五章: 就业课(2.1)-常用API第二部分 5-1 Math&System类 5-2 Object类 5-3冒泡排序 5-4 基本类型包装类 5-5 Date类 5-6 Calendar类 ...https://www.tulingxueyuan.cn/tlzx/tljc/796.html
6.2023届电子信息与计算机工程系优秀毕业设计作品毕业设计学生文档管理系统功能全面,这套系统不仅实用效果好,并且运行速度快,而且在未来还有提升空间,在后续还可以进行不断改进,不断完善来提高这套系统的工作效率。7.基于SSM的酒店管理系统设计与实现 2019级计算机科学与技术 牟帅 本酒店管理系统所使用的数据库是Mysql,前端使用Vue脚手架+Element UI框架开发,后端使用SSM(...https://www.cdutetc.cn/c/4c068411-751b-4f12-b725-f69e34c010a3.html