学生管理系统(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://szgrwhg.suzhou.com.cn/e/admin/
2.基于SSM框架的后台权限管理系统基于SSM框架简单的后台管理系统,整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块(用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控)。 2. 项目演示 2.1 登录 使用md5加密,shiro权限校验 登录页面 https://www.jianshu.com/p/43b007b2973e
3.医院体检管理系统的设计与实现.doc医院体检管理系统的设计与实现.doc 41页大小:2.06 MB 字数:约1.29万字 发布时间:2023-12-03发布于广东 浏览人气:39 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)医院体检管理系统的设计与实现.doc关闭预览 https://max.book118.com/html/2023/1202/8134007065006012.shtm
4.仓库管理系统:基于javawebSSM框架的仓库管理系统。后端:spring...? 视频-IDEA导入+运行项目演示 基于SSM框架的仓库管理系统演示.mp4 功能 系统操作权限管理。系统提供基本的登入登出功能,同时系统包含两个角色:系统超级管理员和普通管理员,超级管理员具有最高的操作权限,而普通管理员仅具有最基本的操作权限,而且仅能操作自己被指派的仓库。 https://gitee.com/yangshare/warehouseManager
1.SSM基于web的公司管理系统89759同时,利用MySQL数据库进行数据存储和查询,确保数据的持久化和一致性。开发过程中,通过IDEA/Eclipse进行代码编写、调试和项目管理,确保开发效率和代码质量。通过以上步骤,开发者可以利用SSM框架快速搭建一个功能完善的Java Web应用。每个步骤都需要仔细配置和测试,以确保系统的稳定性和高效性。https://blog.csdn.net/ck3016/article/details/143656325
2.SiteServer管理后台错误信息 未将对象引用设置到对象的实例。 在SiteServer.CMS.Core.PathUtility.GetChannelPageFilePath(SiteInfo siteInfo, Int32 channelId, Int32 currentPageIndex) 在 SiteServer.CMS.Core.VisualInfo.GetInstance(Int32 siteId, Int32 channelId, Int32 contentId, Int32 fileTemplateId, Int32 pageIndex, Int32...http://www.gdyqs.cn/api/preview/545/573
3.ssm·GitHubTopics·GitHubjavajwtspringdesign-patternsspring-securityspringbootssmrude-java UpdatedJan 22, 2022 Java 学生宿舍管理系统(SSM/Layui框架;毕业设计) mysqljavaideassmlayui UpdatedJan 13, 2022 JavaScript 分享基于Servlet、SSH、SSM、SpringBoot、SpringCloud等流行技术实现的JavaWeb项目,难度分为5个等级,帮助小白入门Java...https://github.com/topics/ssm
4.SSM项目整合(用户管理系统)51CTO博客SSM 项目整合 (用户管理系统) 1. 新建项目工程 2. 配置Tomcat 3. 导入 pom.xml 依赖 <?xmlversion="1.0" encoding="UTF-8"?> <projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...https://blog.51cto.com/u_15127623/4207205
5.薛云正高科研项目, 2011年, 国家自然科学基金"柔性资源约束的分布式协同产品开发项目多层次集成调度研究" 科研项目, 2010年, 广东高校优秀青年创新人才培育项目“基于人工智能技术的大气质量智能评价与预测系统” 科研项目, 2010年, 广东省科技计划项目"钢铁企业节能管理决策支持系统" 科研项目, 2010年, 广东省科技计划项目"大气...http://eie.scnu.edu.cn/a/20220221/65.html
6.SSM项目———小米商城后台管理系统腾讯云开发者社区SSM 项目 ——— 小米商城后台管理系统 文章被收录于专栏:全栈程序员必看 大家好,又见面了,我是你们的朋友全栈君。 目录https://cloud.tencent.com/developer/article/2106143