摘要:毕业设计是大学教学任务中最重要的实践环节, 也是培养大学生综合运用大学知识解决实际问题极为重要的过程。现有毕业设计选题系统普遍通过B/S架构设计, 存在机房人数受限、加载缓慢、效率低下等问题。提出以Android App为客户端, 以Spring+SpringMVC+Hibernate作为后台的框架方案, 以Sql Server 2008数据库实现持久化存储, 设计了基于C/S的毕业设计选题系统。实际应用表明, 该系统具有较好的推广应用价值。
关键词:Android; RxJava; Retrofit; Spring; Hibernate; 选题系统;
Abstract:Graduation project is the most important link in college teaching practice.It is a very important process to train university students' ability to solve the practical problems by using the knowledge they have learned.However, the existing systems are generally designed through the B/S architecture, which inevitably leads to slow loading and low efficiency.This article mainly introduced the Android App for the client, used Spring+SpringMVC+Hibernate as the framework of the program background and employed Squl Server 2008 database to realize persistent storage.And then it set up the graduation design selection system based on C/S for graduates.
Keyword:Android; Rxjava; Retrofit; Spring; Hibernate; title selection system;
毕业设计是高等学校教学工作中最主要的实践环节[1], 是培养大学生综合运用所学知识解决实际问题能力的重要过程, 是开展大学生创新能力训练的主要途径[2]。
高校毕业选题系统存在诸多弊端[3], 如B/S加载缓慢、性能一般等, 不能满足学生需要。鉴于以上情况, 本文以Spring+SpringMVC+Hibernate[4]作为数据后台, 开发了基于Android智能终端的毕业设计选题系统[5], 实现在Android手机客户端登录完成选题的业务流程[6]。
1、系统设计
1.1、功能模块设计
系统设计教务员、教师、学生3个模块。用户使用时必须选择用户类型登录, 然后进行身份认证, 认证通过即可使用相应功能模块。
学院教务管理员:设置各专业选题时间, 汇总学院各专业课题选择情况。
教师模块:在规定时间内创建课题, 查看课题选择情况, 查看个人信息及密码修改等。
学生模块:在规定的选题时间内选题, 查看选题、个人信息、修改密码等。
系统可实现创建课题、审核课题、选题等基本功能。使用方法简单、操作方便、功能齐全, 为用户提供了高效集成的管理和服务平台, 如图1所示。
图1 毕业设计选题系统结构
1.2、系统设计
系统设计了t_depart表、t_teacher表、t_student表、t_project表。
1.2.1、系统流程
图2为用户登录流程。当用户进入系统时, 首先进行身份验证, 验证成功后, 对应显示相应角色功能列表。
图2 系统流程
1.2.2、数据表
t_teacher数据表存储所有教师信息, 其中is_admin==1拥有管理员权限, 见表1。
表1 t_teacher信息
t_depart数据表存储所有学院与专业信息, 见表2。
表2 t_depart信息
t_student表存储所有学生信息, depart_id代表所属专业的id。
表3 t_student信息
t_project表存储所有课题信息。teacher对应出题人, StudentId对应选题人。
表4 t_project信息
2、系统开发
2.1、开发工具
本系统使用Intellij IDEA 2017.1.2、Android Studio进行系统开发, 数据库使用Sql Server 2008, 服务器为Tomcat9, 操作系统是Microsoft Windows7, 浏览器为IE或360安全浏览器, 测试环境为Postman。
2.2、开发技术
2.2.1、后端开发技术
采用Sql Server 2008数据库进行数据持久化存储[7], 采用Spring+SpringMVC+Hibernate实现restful接口设计并返回json数据[8]。
(1) Spring是一个轻量级的容器 (light-weight Container) , 核心是Bean工厂 (Bean Factory) , 可用来构造所需的M (Model) 。在此基础上, Spring还提供AOP (Aspect-Oriented Programming, 面向层面开发) 实现方法, 提供非管理环境下的一些事务和安全申明方式;对实体工厂方法扩展后得到的ApplicationContext更加方便实现J2EE的应用;DAO/ORM (数据库操作对象/数据库映射对象) 方便开发者进行各种数据库开发与实现;Web MVC框架和Spring Web框架提供了Java Web应用框架, 可与其它热门Web框架进行集成开发。
(2) Hibernate是开放源代码的对象关系映射框架, 把数据库操作转换为对实体的操作, 对JDBC操作进行轻量封装, 将POJO实体与数据库表建立一种映射关系, 是一个全自动ORM框架。Hibernate可以自动生成对应的SQL语句, 使程序员可以放心使用面向对象编程思想操作各种数据库。另外, Hibernate可以应用在所有使用JDBC的场合。
(3) Spring MVC框架是一个MVC模式框架, 通过实现Model-View-Controller模式很好地将数据层、业务层与展现层分离开来。Spring MVC设计原理是围绕DispatcherServlet类展开的, DispatcherServlet负责将所有请求派发到它指定的handler进行处理。通过其中可配置的handler mappings、view resolution处理接收到的请求, 并转到对应的视图展示。
SSH (Spring, SpringMVC与Hibernate) 开发优点[9]:
(1) SpringMVC是一种很好的MVC模式框架。SpringMVC的MVC设计模式可使开发逻辑变得非常清晰, 程序更加层次分明。
(2) Spring提供了对业务进行管理的方法, 鼓励使用注入接口的方法进行编程, 不提倡直接对类进行编程或操作, 使开发的产品最大程度上进行解耦。
(3) Hibernate提供数据库操作, 对数据进行持久化[10]。Hibernate访问数据对应的注解类名属性等, 对JDBC进行轻量封装[11], 与关系型数据库配合编程过程大大简化[12]。
2.2.2、安卓端开发技术
(1) Rxjava, 一个在Java VM上使用可观测序列组成异步、基于事件的程序的库, 是一个用来异步操作的框架。Rxjava通过Observable与Subscriber实现观察者设计模式, 能在业务逻辑复杂的情况下仍然保持清晰的代码。
(2) Retrofit, 一个针对Android和Java的http请求客户端, 可将restful API封装为java interface, 根据业务需求进行实际接口的封装, 可封装多个java interface以满足业务需求。
Rxjava+Retrofit优点:
Retrofit使用注解方式定义请求, 基于Okhttp (基于okio优化的高效流操作, 能自动使用同一个Socket合并请求等) 实现高效的网络请求。配合Rxjava观察者设计模式, 可更加高效清晰地实现异步网络请求。
3、系统运行效果
毕业设计选题系统设计完成后台管理系统与移动端APP应用, 在此以教师端登录效果进行展示。
教师用户登陆。使用账号t001, 密码123456, 如图3所示。
用户登录后, 显示对应权限功能列表, 进行操作, 如图4所示。
进入个人中心, 显示当前用户详细信息, 如图5所示。
图3 系统登录页面
图4 教师主界面
图5 教师个人信息
4、结语
本文提出的毕业设计选题系统构建方案, 目的是有效提高高校毕业设计选题工作的效率, 解决人工信息管理及Web端操作的诸多弊端, 提升高校校园数字化水平。该系统使高校毕业设计选题工作更加科学化、规范化, 具有良好的应用前景。
参考文献
[1]单丹丹, 韩冬.Android源码中观察者模式的运用[J].电脑知识与技术, 2017 (2) :16-17.
[2]刘金梅, 王俊红, 胡辉, 等.电子信息工程专业本科毕业设计研究与实践[J].北华航天工业学院学报, 2016 (5) :142-146.
[3]郑洁, 钱育蓉, 范迎迎.基于SpringMVC和Hibernate的企业人事管理系统[J].电脑知识与技术, 2016 (2) :64-66.
[4]周巧俊.RESTful Web服务开放平台的设计与实现[D].杭州:浙江大学, 2016.
[5]朱亚林, 高飞, 卞步喜.浅谈本科毕业设计过程中学生创新能力的培养[J].科技创新导报, 2014 (28) :29-31.
[6]张玉清, 王凯, 杨欢, 等.Android安全综述[J].计算机研究与发展, 2014 (7) :78-79.
[7]陈霓.SQL Server 2008数据库的安全性分析[J].电脑开发与应用, 2012 (1) :94-96.
[8]冯学军.基于SSH框架的Web网站设计与实现[D].长春:长春理工大学, 2010.
[9]吴晓鸥.Restful Web Services在企业应用集成中的应用研究[D].北京:首都经济贸易大学, 2010.
[10]陈苏蓉, 朱晓辉.SQL Server 2008性能优化研究[J].电脑知识与技术, 2009 (34) :65-68.
[11]高张, 康小军.提高Tomcat服务器运行性能的研究[J].计算机与数字工程, 2008 (10) :1245-1250.
[12]许文稼, 赵英凯.应用SpringMVC与Hibernate进行Web开发[J].计算机应用与软件, 2008 (2) :146-149.