基于SSM的学生信息管理系统的设计

SSM的简介

SSM是三个框架(spring+springMVC+mybatis)的配合使用,框架是一种关系映射,是一种可复用软件架构的解决方案,而SSM是目前常用的一种效率高效开发框架。因为之前自己做过实训,老师只用了maven就可以直接设计出来类似的系统。相对比而言,SSM看起来用的框架较多,但在设计的过程中,SSM的开发效率真的很高效。后台的逻辑出关系没有maven那么复杂,所以学习了SSM框架来设计系统,设计的作品比较简单,作为基础的参考即可。

Spring

对Spring的理解主要是两大核心理念IoC和Aop(也可以认为注解也是其重要的理念之一)

IoC是一个轻量级的控制反转的容器。传统的程序使用new来创建对象,但是IoC把创建对象的方式把创建对象的主动权转交给专门的容器来管理,即通过第三方去创造对象。IoC作为一个容器,里面装载着各种资源(Bean),如对Bean的创建,事件,行为等,且也能对各个Bean之间的依赖关系通过描述来管理。简单来说,IoC的理念就是只要向IoC容器描述对应的接口进而通过第三方去产生或获取特定对象,为管理bean而服务。这种理念有利于代码的复用,便于开发者对系统的测试,结构体系更加灵活。
AOP是面向切面编程的框架。当IoC存储了各种Bean资源,而AOP就是用“切面”的形式来负责管理各种Bean资源。AOP常用于数据事务的编程。通过“横切”技术管理在切面上的某些对象之间的协作,切面环境指的就是数据库的事务。将影响类的公共行为却被业务模块共同调用如在编写jdbc代码时需要写入无数的try…catch…finally语句,使得这种类型的代码的出现严重泛滥,将这种被多个模块公共调用的模块封装到一个可重用模块中去,这种管理方式可跨越多个对象,该可重用模块就称之为切面。在更新完数据库的数据后,判断是否成功,及时更新或作废数据库,当接收到异常信息的提示时就执行数据库的事务回滚的操作。降低了模块之间的耦合度和开发的工作量,有利于测试。

SpringMVC

SpringMVC框架是Spring提供个Web应用的框架设计。

熟悉了解SpringMVC的组件和工作流程是开发SpringMVC的关键。开发人员大多数会采用注解的形式编写MVC框架,在控制层添加@Controller注解,再结合注解@RequestMapping配置在类或方法上。这样的处理将配置的类或方法视为一个处理请求的处理器。SpringMVC还可以配置拦截器使系统更加灵活,阻止无关用户登录。启动SpringMVC在处理@Controller中的@RequestMapping的配置同时,再添加拦截器和控制器放置到HandlerMapping中去。当客户端发送请求时,服务器根据请求信息找到HandlerMapping所对应的拦截器和处理器,通过了拦截器的拦截请求后再运行对应的控制器和处理器。使用SpringMVC框架能使前端视图层和后端的控制层和业务层得到一定的分离,避免了各种模块的耦合,其最大的特点就是结构松散。SpringMVC运行的核心是DispatchServlet,DispatchServlet就像是CPU一样工作。(网上有各种各样的uml图介绍SpringMVC的运行原理很详细)

Mybatis

Mybatis是一个基于 Java的互联网持久框架。

互联网应用层可以使用Mybatis框架访问数据库。在Mybatis框架中,开发者可制定SQL规则,根据不同的需要组装SQL,使得映射规则灵活多样。最突出的标志是使用Mapper接口创建的映射器构造简单方便,简化了开发工作。所以在移动互联网时代,Mybatis成为持久框架的首选。
其中Mybtis中的核心组件主要是:SQLSessionFactoryBuilder、SQLSessionFactory、SqlSession、SQL Mapper各尽其职,构造器用来生成工厂接口SessionFactory,工厂接口再生成Sqlsession,而 SqlSession执行多条SQL,创建Mapper使数据访问层和数据库建立联系。Mybatis中的映射器负责一个请求中的业务处理,把SQL查询到结果映射为一个pojo或将pojo数据插入到数据库中。描述映射规则,提供SQL语句,并可以配置SQL参数类型,返回类型,缓存刷新等信息,配置缓存,提供动态SQL均是在映射器中可以配置的内容,
Mybatis不屏蔽SQL的特点,可以减少查询字段,应对数据库变换强,越来越轻量级配置,用注解实现映射器,将注解发挥到极致,使用方便,容易掌握。且Mybatis使用Mapper接口编程,映射器由一个接口和一个XML文件构成,映射机制更加强大灵活,功能设计更集中于业务逻辑。

整合

将三者进行整合,SSM用SpringMVC做分层管理的控制器。SpringIoC负责管理各组件资源,SpringAOP进行切面编程管理。MyBatis做数据库访问持久层,实现Spring中的Dao和数据控系统的数据交互,负责数据库事务管理。SSM框架适用于搭建各种大型应用系统,可应用于学校教务系统管理,学生宿舍管理,企业管理,政府部门管理等方面。
对系统功能和性能需求分析,实现不同的用户系统具有不同的操作权限,将登录系统的用户类型一般分为学生用户和管理员用户后,丰富学生信息的管理内容,在系统页面设置分模块展示学生的多样化的信息。在登录界面进行区分用户类型后在系统菜单栏展现不同模块,如分为年级,班级,学生个人基本信息,成绩,选课等模块。

设计思路

数据库表的设计,后台的逻辑处理(最基础的也要了解增删改查的操作),前端的页面显示样式设计,通过逻辑处理来实现前后台(数据库数据与前端请)的数据进行交互。

系统内部运行的访问流程为:
1、访问网站链接,在浏览器中输入的本地地址链接为:http://localhost:8080/StudentManagerSSM/system/login#
2、当请求过来的时候先进入拦截器interceptor
3、拦截器判断是否让用户进行浏览和操作。
4、通过拦截器后到了Controller进行逻辑处理。
5、找到对应的请求网址。
6、进行业务处理后,把数据展示到jsp页面,因为是WEB-INF下的views/jsp文件的路径都是配置文件配置的。
7、最后jsp页面将查询到的数据库的数据展示到页面,至此系统完成了一次访问请求。

配置文件

1、db.properties连接池配置文件添加,通过数据库连接池技术完成应用对数据库的操作的配置文件信息。在db.propeties配置文件中配置所在的主机名称,所使用的端口,所连接的数据库的名字,设置用户信息,包括用户名和口令,文件中配置相关的主要信息有

datasource.connection.driver_class=com.mysql.jdbc.Driver
datasource.connection.url=jdbc:mysql://localhost:3306/db_student_ssm?useUnicode=true&characterEncoding=utf-8
datasource.connection.username=root
datasource.connection.password=root

与MySQL创建数据库表的连接信息一致(username和password)
2、日志文件的配置
3、 (spring)在ApplicationContext.xml文件中配置能够加载配数据源配置文件db.properties信息和配置数据源(C3P0)和管理SQL语句的事务管理器(JDBC)的信息。
4、(springMVC)springMVC.xml的配置
5、(mybatis)mapper文件的配置

数据库表的设计

eg
user表的设计
名 类型 长度 小数点 允许空置
id int 11 0 主键
username varchar 32 0
password varchar 32 0

逻辑处理(增删改查)之添加的功能

以设计管理员模块过程为例,在entity中User类添加变量,数据库表user字段与实体类的变量相映射,并在实体类中添加@Component注解,把普通pojo实例化到spring容器中。在控制器(UserController)中实现逻辑处理,创建服务层接口UerService,具体实现方法通过继承类UserServiceImpl来进行业务处理,进入数据访问层设计并在UserMapper.xml中编写映射规则,最后编写user_list.jsp文件。用户添加信息在控制层中都添加@Controller的注解,然后使用@RequestMapping以定义URL 请求和Controller方法之间的映射,使外界能够访问控制器。
在这里插入图片描述
进入服务层接口请求具体的实现方法UserServiceImpl。在接口类中添加方法public int add(User user);用@Service注解标注服务层,进行业务处理。在UserServiceImpl中实现具体的添加方法,同时添加注解@Autowired自动装配bean。代码为

public int add(User user){
		 return userDao.add(user);
	 }

在业务请求完成后,返回到数据库访问层UserDao。写入添加的方法,在数据库访问层要添加@Repository的注解,将dao类声明为Bean,实现dao访问。在数据访问层UserDao的代码为

public int add(User user){
 return userDao.add(user);
	 }

程序对数据库的操作还需要有相应的UserMapper.xml映射文件,完成pojo到数据库的映射。在UserMapper.xml文件中需要添加插入记录条的SQL语句:

<update id="add" parameterType="User">
  		insert into user(id,username,password) values(null,#{username},#{password})
  	</update>

id的值与UserDao中的add方法名要一致。insert是用于映射插入语句的元素,该SQL语句接受一个User类型的参数,其中的键id、username、password值便是数据库中字段,#{}中的值是向结果行中添加的值。
最后前端的页面显示在JSP文件中添加。(前端页面的设计,每个人的设计框架都不一样,我使用了easyUI框架)

登录与注销

在这里插入图片描述
在SystemController控制器中对@RequestMapping注解的value值其请求登录的地址名。使用RequestMethod.GET方法对Spring接口的请求访问,这种访问方法可以直接通过地址访问登录界面,不对用户拦截,用ModelAndView来定义视图类型加载视图模型。
jsp文件中添加登录按钮,对接收的信息验证。登录成功显示欢迎页面,ModelAndViewindex加载的是登录成功后的欢迎页面。
用户退出系统需要注销用户信息时,控制器对@RequestMapping注解的value值其请求注销页面地址名",得到session对象中的user值并清空,并且返回值为"redirect:login",跳转回登录界面。
其他的一些小功能的实现如分页查询,模糊查询,验证码验证,登录的拦截器就不赘述了。
个人学习过程是跟着猿来如此的博主来学习的。文章的内容是基于个人理解。不足之处,请多指教。

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于SSMSpring+Spring MVC+MyBatis)学生信息管理系统是一种用于管理学校学生信息的系统。这个系统可以实现学生信息的录入、查询、修改、删除等功能。 首先,系统可以提供一个用户界面供管理员输入学生信息。管理员可以输入学生的姓名、性别、年龄、班级等基本信息,并将这些信息保存到数据库中。系统还可以提供一种验证码验证机制,以确保输入信息的准确性。 其次,学生信息管理系统可以提供查询学生信息的功能。管理员可以根据学生的姓名、学号、班级等条件进行查询,系统会根据管理员的指令从数据库中检索相应的学生信息并返回给管理员。管理员还可以同时查看多个学生的信息,并可以按照特定的条件进行排序,以方便管理。 此外,系统还具备修改和删除学生信息的功能。管理员可以根据需要修改学生的基本信息,如年龄、班级、联系方式等。管理员还可以根据学生的学号或姓名进行删除操作,从数据库中删除相应的学生信息。 另外,学生信息管理系统还可以提供一些辅助功能,如数据的导入导出和系统的备份恢复。管理员可以将学生信息导入到系统中,或将系统中的学生信息导出到文件中。管理员还可以定期备份系统数据,以防止数据丢失或系统故障导致信息丢失,同时也可以在需要时进行数据的恢复。 总之,基于SSM学生信息管理系统提供了方便快捷地管理学生信息的功能。它可以简化管理员的工作流程,并提高学生信息的管理效率。系统具有易用性、灵活性和扩展性,并能够满足学校对学生信息管理的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值