本栏目责任编辑:谢媛媛
软件设计开发
基于SSM 框架的学生生活服务平台的设计与实现
秦溧,艾青
(辽宁科技大学计算机与软件工程学院,辽宁鞍山114051)
摘要:随着时代的发展,为了满足大学生对生活上的需求,以及整合周边商家所提供的服务,经研究,在基于Spring ,Spring⁃
spring ioc注解MVC 和Mybatis 框架技术的基础上,设计并实现了学生生活服务平台,在该平台上,用户可获取自己想了解的信息,商家可对店铺进行宣传。该平台界面友好,易于操作,给用户带来出的使用体验,不仅可以提高大学生的生活效率,而且还可以增加商家的收益。
关键词:Spring ;SpringMVC ;MyBatis 中图分类号:TP311.5
文献标识码:A
文章编号:1009-3044(2021)13-0080-03
开放科学(资源服务)标识码(OSID ):
1背景
经调查,当代许多大学生想取快递时,往往都会遇到没有时间,要排很长的队的小问题;想要勤工俭学也没有一个好的渠道;想快速获取到周边商铺也需要自己花费大量的时间去探索;对于商家来说,想有效地对自己的店铺进行宣传,却还停留在采用发传单的形式,往往事倍功半。这给大学生的生活以及商家的收益造成了极大的影响。综合以上问题分析,学生生活信息化的研究已成为当代不可避免的重要课题。
在该平台上实现的功能有,商家的入驻与审核,商家对店铺和商品的管理,对最近一周消费记录的分析,以及查看在该店铺消费的用户的积分。对于用户,可以进行对店铺和商品的浏览,如果已在该平台注册则可以拥有积分功能和奖品兑换的功能,即消费对应的奖品和服务可以获得相应的积分,利用该积分可以在该店铺兑换心仪的奖品。用户可在该平台上获得良好的使用体验。
在传统的J2EE 的开发过程中存在着许多问题。由于采用传统的SSH 框架进行开发时,用Hibernate 框
架的对数据库进行操作时,往往会出现难以拼接Sql 语句等问题,使得系统的开发和部署非常复杂,运行效率也低。本文采用SSM 框架(Spring ,SpringMVC ,MyBatis )来开发学生生活服务平台,这不仅简化了编程,还提高了系统性能,增强了系统的可扩展性。
2SSM 框架概述
Spring 是一个轻量级的Java 框架,它是整合SSM 的核心。Spring 由Core (核心)、Context (上下文)、AOP (面向切面)、DAO (控制反转)、ORM 、Web 以及MVC 组成,它在视图层、数据持久层及业务逻辑层都有这广泛的应用,在这几个层次里,程序员可以使用它的任何功能,系统框架的稳定性不会受到任何影响。Spring 主要是以IOC 控制反转和AOP 面向切面编程为主的
一款轻量级框架,在真正意义上实现了“一次写入,多处运行”,改善了J2EE 的开发效率以及技术标准的不统一,是J2EE 应用的各层的最优解决方案,能够与其他框架整合实现无缝连接[1]。
SpringMVC 是轻量级web 框架阵营中的主要成员之一,MVC 设计思想是它的主要特,这种设计方法可以用来对WEB 层实现解耦,从而使得开发变得更加清晰和容易,同时能
无缝衔接Spring 技术,并且数据验证更加灵活[4]
。在开始使用Java 2E 技术进行开发时并没有想到使用框架来简化开发的这种概念,因此大部分的开
发都是采用Jsp (编写前端代码)、Serv⁃let (编写请求跳转和控制文件)和JavaBean 来进行系统的开发。在开发中,JSP 接收用户的Request 及同时将系统处理所得到的Result 返回到服务器中并在视图层呈现给用户;JavaBean 用来建立和维护系统和数据库之间连接的关系,Servlet 就作为Controller 用于接收请求并返回相应的响应结果。采用这种开发模式会存在一个问题,那就是传统方法中,每创建一个请求的路径都会对应的在系统中创建一个Servlet 。这样会导致系统中存在大量的Servlet 文件,这种开发模式不仅会使系统源码占用的空间过多,同时还会给开发人员在后期系统的调试和维护中造成极大的不便。此外,在处理请求时仍有许多不方便的操作。但是,SpringMVC 解决了V-C 之间的交互问题,也就是视图和控制器之间的交互问题[2]。
MyBatis 是一个轻量级Java 持久层框架,它可以支持自定义SQL 、存储数据的过程以及高级的Mapper 映射。MyBatis 可以支持和MySql 数据库的联合使用。MySQL 作为对数据库进行操作的核心应用组件,它封装了对数据库可以进行增删改查的所有操作,并且可以只需要通过对xml 配置进行简单的配置和注解就可以快速生成一些主要的代码,提高开发者的生产力[3]。MySQL 的框架设计采用分层的思想[4-5],从逻辑业务上可以分为3层:
收稿日期:2021-01-20基金项目:辽宁科技大学大学生创新创业训练计划资助项目(项目编号:202010146482);辽宁科技大学优秀人才项目(项目编号:
2018RC05)
作者简介:秦溧(2000—),男,重庆人,学士,研究方向为软件工程理论;艾青(1980—),男,辽宁辽阳人,通信作者,副教授,硕士生导
师,博士,研究方向为软件工程、机器学习、人工智能。
80
软件设计开发
本栏目责任编辑:谢媛媛
Computer Knowledge and Technology 电脑知识与技术
第17卷第13期(2021年5月)
1)API 接口层,在这一层Mybatis 提供了大量可直接调用的API 接口,这些接口的功能全面且强大,只要开发者在开发过程中加入了相关JAR 包依赖就可以直接使用,这些API 接口会省去许多开发过程中烦琐的步骤从而使开发变得相当简单。
2)数据处理层,这一层主要是对JavaBean 对象实现数据的剖析和分解的操作,从而达到数据库表和实体类建立起映射的效果,完成对数据库的CRUD 操作[6]。
3)基础配置层,这一层负责数据库连接和管理以及数据的基本配置和加载,其中事务管理的底层驱动是Mybatis 。Myba⁃tis 主要通过编写xml 文件让其作为连接数据库和系统的配置文件,此外,通过在xml 文件中编写Sql 语句的方式可以实现对数据库的操作,也可以通过注解的方式实现。Mybatis 可以提高系统的灵活性和可维护性主要是因为它的分层思想,另外Mybatis 的结构框架类似MVC ,它也将系统分为了DAO 接口层[7]、service 服务层、view 视图层。但对数据库进行操作时,都需要在实体类中去定制数据库表所对应的主键以及其他字段属性,然而在一些大型系统的数据库中会有很多的数据库表,而这会导致对主键的指定变得相当麻烦。由于mybatis 的数据库连接,是基于简单JDBC (Java Databases Connection )的,因此建立Mybatis 和数据库的连接操作以及释放链接的操作都会占用系统大量资源[8]。
SSM 一个是典型的单体式轻量级框架,从职责上可以给系统分为四层:表示层,业务层,持久层和视图层,可以帮助开发者在较短的时间内搭建出复用性强、方便维护的程序。
3平台部分数据库表以及业务流程图设计
3.1系统流图
商家入驻流程图,该图用于展示商家在入驻本平台时需要
走的流程,如图1
所示:
图1商家入驻流程图
商家审核流程图,该图用于展示管理员在审核入驻商家店
铺信息的详细流程,如图2
所示:
图2商家审核流程图
3.2系统功能图
学生生活服务平台(学生帮)系统功能图,该图用于展示,
用户、商家、管理员在该平台上所能拥有的功能,如图3所示:
图3系统功能图
3.3部分关键数据库设计
区域表tb_area :该表用于存储周边店铺信息区域位置,并
由管理员来进行管理,如表1所列:
81
本栏目责任编辑:谢媛媛
软件设计开发Computer Knowledge and Technology 电脑知识与技术
第17卷第13期(2021年5月)
表1区域表
列名area_id area_name priority create_time last_edit_time
类型num(5)char(20)num(4)date date
描述
区域ID 数据库自增量
区域名显示优先级创建时间最后编辑时间
用户表tb_person_info :该表用于存储在该平台上注册的用户信息,包括普通用户,商家,管理员,如表2所列:
表2用户表
列名user_id uname
profileImg Gender_sex
estatus uType cTime last_edit_time
类型num(20)char(20)char(20)char(2)
num(1)num(1)date date 描述
用户ID 数据库自增量注册用户的姓名
头像性别可用状态用户的角用户注册成功创建时间
最后编辑时间
账号tb_wechat_auth :用户可以和自己的号进行关联,在关联后,将自己的账号信息存储到该表中,如表3所列:
表3账号
列名wechat_auth_id
user_id open_id cTime
类型num(20)num(20)char(20)date
描述
id 数据库自增量
用户id 外键开放id
绑定账号的时间
本地账户表tb_local_auth :用户在进行登录后可以绑
定一个本地账号,登录的时候,除了可以利用自己的账号,也可以用自己的本地账号进行登录。在绑定本地账号后,将本地账号的信息存储的该表中,如表4所列:
表4本地账户表
列名local_auth_id user_id
username password cTime last_edit_time
类型num(20)num(20)char(20)char(20)date date
备注本地账户ID 自增用户ID 自增外键用户名外键密码创建时间最后编辑时间
头条信息表tb_head_line :用于在界面展示商家的宣传信息,商家在和管理员进行协商后,将自己的店铺信息在界面的头条上进行宣传。并将该头条信息存储到该表中,如表5所列:
表5头条信息表
列名line_id
类型num(20)
备注头条ID 自增
line_name
line_link line_img priority enable_status create_time last_edit_time
char(20)char(20)char(20)num(4)num(1)date date
头条名头条链接头条图片头条优先级头条可用状态创建时间最后编辑时间
店铺类别表tb_shop_category :该表用于存储商店的类别,且店铺类别的信息由管理员管理,商家在申请店铺时,需在该表的信息中选取自己需要的店铺类别,如表6所列:
表6店铺类别表
列名shop_category_id shop_categoty_name shop_category_desc shop_category_img
priority create_time last_edit_time parent_id
类型num(20)char(20)char(20)char(256)num(4)date date num(20)
备注类别id 外键店铺类名类别描述类别图片优先级创建时间编辑时间父级目录
4结束语
本文主要针对学生生活服务平台的开发进行了技术的分析、功能的描述、业务流程图和数据库的设计。通过测试,该平台性能稳定、可靠,具有较强的可扩展性。
参考文献:
[1]唐权.SSM 框架在JavaEE 教学中的应用与实践[J].福建电脑,2017,33(12):61,93-94.
[2]邱丹萍.Web 开发中SSM 框架的分析[J].电脑知识与技术,2020,16(17):81-82.
[3]Jeroen O,David J,SaikatT D,et al.RMySQL:database interface and 'MySQL'driver for R[EB/OL].[2020-09-20]./web/packages/RMySQL/index.html.
[4]Nash T,Olmsted A.Performance vs.security:Implementing an immutable database in MySQL[C]//201712th International Conference for Internet Technology and Secured Transactions (ICITST).Cambridge:IEEE,2017.
[5]Sánchez-de-Madariaga R,Muñoz A,Castro A L,et al.Executing complexity-increasing queries In relational (MySQL)and NoSQL (MongoDB and EXist)size-growing ISO/EN 13606standardized EHR databases[J].Journal of Visualized Experi⁃ments,2018(133):57439.
[6]张世雄.PHP 操作MySql 数据库的面向对象模型类实现[J].清远职业技术学院学报,2018,11(6):45-48.
[7]陈欣.基于java 三层构架的管理信息系统中DAO 层的构建探索[J].科技资讯,2015,13(11):26-27.
[8]陈小虎,邓惠俊.基于mybatis 的数据持久层研究[J].成都工业学院学报,2020,23(2):29-32.
【通联编辑:谢媛媛】
82
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论