基于Android的毕业设计选题系统设计与实现

2018-05-15 08:31郁书好田志会朱成棋范祥林
软件导刊 2018年4期

郁书好 田志会 朱成棋 范祥林

摘 要:毕业设计是大学教学任务中最重要的实践环节,也是培养大学生综合运用大学知识解决实际问题极为重要的过程。现有毕业设计选题系统普遍通过B/S架构设计,存在机房人数受限、加载缓慢、效率低下等问题。提出以Android App为客户端,以Spring+SpringMVC+Hibernate作为后台的框架方案,以Sql Server 2008数据库实现持久化存储,设计了基于C/S的毕业设计选题系统。实际应用表明,该系统具有较好的推广应用价值。

关键词:Android;RxJava;Retrofit;Spring;Hibernate;选题系统

DOI:10.11907/rjdk.172390

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)004-0138-03

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.

Key Words:Android; Rxjava; Retrofit; Spring; Hibernate; title selection system

0 引言

畢业设计是高等学校教学工作中最主要的实践环节[1],是培养大学生综合运用所学知识解决实际问题能力的重要过程,是开展大学生创新能力训练的主要途径[2]。

高校毕业选题系统存在诸多弊端[3],如B/S加载缓慢、性能一般等,不能满足学生需要。鉴于以上情况,本文以Spring+SpringMVC+Hibernate[4]作为数据后台,开发了基于Android智能终端的毕业设计选题系统[5],实现在Android手机客户端登录完成选题的业务流程[6]。

1 系统设计

1.1 功能模块设计

系统设计教务员、教师、学生3个模块。用户使用时必须选择用户类型登录,然后进行身份认证,认证通过即可使用相应功能模块。

学院教务管理员:设置各专业选题时间,汇总学院各专业课题选择情况。

教师模块:在规定时间内创建课题,查看课题选择情况,查看个人信息及密码修改等。

学生模块:在规定的选题时间内选题,查看选题、个人信息、修改密码等。

系统可实现创建课题、审核课题、选题等基本功能。使用方法简单、操作方便、功能齐全,为用户提供了高效集成的管理和服务平台,如图1所示。

1.2 系统设计

系统设计了t_depart表、t_teacher表、t_student表、t_project表。

1.2.1 系统流程

图2为用户登录流程。当用户进入系统时,首先进行身份验证,验证成功后,对应显示相应角色功能列表。

1.2.2 数据表

t_teacher数据表存储所有教师信息,其中is_admin==1拥有管理员权限,见表1。

t_depart数据表存储所有学院与专业信息,见表2。

t_student表存储所有学生信息,depart_id代表所属专业的id。

t_project表存储所有课题信息。teacher对应出题人,StudentId对应选题人。

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所示。

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.

(责任编辑:杜能钢)