基于JavaEE+EasyUI学生成果管理系统的设计与实现
——以安顺学院为例
2019-11-28杨正泽吴育辉
杨正泽 吴育辉
(1、2.安顺学院电子与信息工程学院,贵州 安顺561000)
在“新工科”建设的背景下,为了实现对学生工程能力和创新能力的培养[1],高校积极鼓励学生经常参加各种各样竞赛活动以及其他创新实践活动。竞赛和创新实践活动的种类越来越多,与之对应的成果成倍增长,安顺学院现采用传统人工处理方式管理,工作量巨大而且效率低下,使得学生的成果管理工作变得很艰难。因此,有必要设计一个学生成果管理系统,对学生竞赛和创新成果进行系统管理,以便动态管理学生竞赛和创新成果,以及后期查询统计,进一步提高工作效率,保证信息的准确和规范。本系统实现了成果管理的一系列功能:论文、作品库、竞赛获奖作品、创新项目管理以及统计和审核、用户与系统管理。
1 系统架构以及相关技术
根据本系统的使用场景,采用MVC以及B/S架构来进行设计[2],系统架构如图1所示。
系统实现技术选用Java、Servlet3.0等,结合JSP、EasyUI技术作为前台页面,服务器采用tomcat7.0.47,用Mysql5.7数据库保存数据,用PowerDesigner16.5为本系统进行数据库设计,在客户端使用WEB浏览器登陆系统进行操作[3]。
图1 系统架构图
2 系统设计
本系统主要实现以下功能:
(1)论文管理:对学生投稿、发表的论文进行增加、删除、修改、查询、统计等操作。
(2)作品库管理:对学生的课程设计、项目等方式完成的代表性作品进行增加、删除、修改、查询、统计等操作。
(3)竞赛获奖管理:对学生各类竞赛获奖的信息,如获奖时间、等级、指导教师等,进行增加、删除、修改、统计等操作。
(4)创新项目管理:对学生参加的大学生创新实践项目、SRTP、互联网+等信息进行增加、删除、修改、统计等操作。
图2 总体功能模块图
(5)信息管理:对用户信息进行增加、修改、删除、查询、统计等操作[4]。
(6)用户功能:用户密码修改和系统使用帮助[5]。
如上所述,学生成果管理系统的总体需求如图2所示。
3 数据库设计
数据库是本系统的重中之重,通过对系统的详细需求分析的基础上,提炼了数据表之间的逻辑关系[6],采用Mysql5.7 来建立和管理数据库(achievement)。该数据库由论文(thesis)、教师(teacher)、课题(subject)、学生(student)、课题级别(subjectGrade)、管理员(administer)、学生作品库(achievement)、作品类别(achievementType)、学生竞赛(competition)9个数据表构成。系统链接数据库代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
public abstract class JDBCTemplate
private String driverClass="com.mysql.jdbc.Driver";
//设置连接数据库编码
private String jdbcURL="jdbc:mysql://localhost/achievement useUnicode=true&characterEncoding=UTF-8";
private String user="root";
private String pwd="root";
abstract public T execute() throws Exception;
protected Connection getConnection() throws Exception {
//加载驱动
Class.forName(driverClass);
//连接数据库
Connection conn=DriverManager.getConnection(jdbcURL,user,pwd);
System.out.println("……数据库已连接……");
return conn;
}}
4 论文管理模块技术举例
论文管理、作品库管理、竞赛获奖管理、创新项目管理这四个模块之间很多功能是相似的,而且实现过程也是类似的。因此,本文就选择论文管理查询和审核来举例,对实现过程进行详细的说明。
(1)管理员查询论文。
查询论文界面如图3所示。
图3 查询论文成功界面
查询论文相关代码如下:
JSONArray array = new JSONArray();
JSONObject member = null;
List
String sql ="select * from subject where subjectAuditing=1 ";
try {
if(searchType!=null&&(searchValue!=null&&!searchValue.isEmpty())){
a=SubjectDao.getSearchSubject(searchType, searchValue);
}else {
a=SubjectDao.getAllSubject(sql);}
for (int i=0;i member=new JSONObject(); member.put("subjectId",a.get(i).getSubjectId()); member.put("subjectName", a.get(i).getSubjectName()); member.put("subjectT",a.get(i).getSubjectT()); member.put("subjectAuthor", a.get(i).getSubjectAuthor()); member.put("subjectType",a.get(i).getSubjectType()); member.put("subjectSTime",a.get(i).getSubjectSTime()); member.put("subjectETime",a.get(i).getSubjectETime()); member.put("subjectComplete",a.get(i).getSubjectComplete()); member.put("subjectFile",a.get(i).get SubjectFile()); String auditing=null; if(a.get(i).getSubjectAuditing()==0) {auditing="审核中"; }else if(a.get(i).getSubjectAuditing()==1) {auditing="审核通过"; }else {auditing="审核不通过";} member.put("subjectAuditing",auditing); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 member.put("subjectTime", df.format(a.get(i).getSubjectTime()));array.add(member);} } catch (Exception e) { e.printStackTrace();} (2)管理员审核论文。 审核论文界面如图4所示。 图4 论文审核页面 审核相关代码如下: private void doAuditingThesis(HttpServletRequest request,HttpServletResponse response) throws Exception{ Administer administer =(Administer)request.getSession().getAttribute("administer"); int id =Integer.valueOf(request.getParameter("id"));int auditing=Integer.valueOf(request.getParameter("thesisAuditingT")); Thesis th=new Thesis(); ThesisService service=new ThesisService(); th.setAdminister(administer); th.setThesisAuditing(auditing); try { service.AuditingThesis(th, id); //发json 信息给客户端 JSONObject messige=newJSONObject(); messige.put("successATH", true); response.setContentType("text/html;charset=utf-8"); response.getWriter().write(messige.toString()); } catch (Exception e) { //发json 信息给客户端 JSONObject messige=new JSONObject(); messige.put("successATHErr", true); response.setContentType("text/html;charset=utf-8"); response.getWriter().write(messige.toString()); } } 论文审核数据保存代码如下: public static Boolean AuditingThesis(final Thesis thesis,final int thesisId) throws Exception{ JDBCTemplate @Override protected Boolean doTransaction(Connection conn) throws Exception { // 根据指定论文id查询论文信息 String sql = "update thesis set thesisAuditing=,aCard= where thesisId="; PreparedStatement ps=conn.prepareStatement(sql); // 对SQL语句的占位符参数进行动态赋值 ps.setInt(1,thesis.getThesisAuditing()); ps.setString(2, thesis.getAdminister().getaCard());//管理员的id ps.setInt(3, thesisId); return ps.execute(); }}; return t.execute(); } 针对目前高校学生成果管理过程中出现的效率问题,在充分调研、整理和分析需求的基础之上,利用JavaEE+EasyUI、Mysql 、Tomcat技术,设计和实现了适合学校实际管理特点的学生成果管理系统,有助于提高教师对学生成果管理工作的效率和质量,提升安顺学院的信息化管理水平。5 总结