楊正澤 吳育輝
(1、2.安順學院電子與信息工程學院,貴州 安順561000)
在“新工科”建設的背景下,為了實現對學生工程能力和創新能力的培養[1],高校積極鼓勵學生經常參加各種各樣競賽活動以及其他創新實踐活動。競賽和創新實踐活動的種類越來越多,與之對應的成果成倍增長,安順學院現采用傳統人工處理方式管理,工作量巨大而且效率低下,使得學生的成果管理工作變得很艱難。因此,有必要設計一個學生成果管理系統,對學生競賽和創新成果進行系統管理,以便動態管理學生競賽和創新成果,以及后期查詢統計,進一步提高工作效率,保證信息的準確和規范。本系統實現了成果管理的一系列功能:論文、作品庫、競賽獲獎作品、創新項目管理以及統計和審核、用戶與系統管理。
根據本系統的使用場景,采用MVC以及B/S架構來進行設計[2],系統架構如圖1所示。
系統實現技術選用Java、Servlet3.0等,結合JSP、EasyUI技術作為前臺頁面,服務器采用tomcat7.0.47,用Mysql5.7數據庫保存數據,用PowerDesigner16.5為本系統進行數據庫設計,在客戶端使用WEB瀏覽器登陸系統進行操作[3]。

圖1 系統架構圖
本系統主要實現以下功能:
(1)論文管理:對學生投稿、發表的論文進行增加、刪除、修改、查詢、統計等操作。
(2)作品庫管理:對學生的課程設計、項目等方式完成的代表性作品進行增加、刪除、修改、查詢、統計等操作。
(3)競賽獲獎管理:對學生各類競賽獲獎的信息,如獲獎時間、等級、指導教師等,進行增加、刪除、修改、統計等操作。
(4)創新項目管理:對學生參加的大學生創新實踐項目、SRTP、互聯網+等信息進行增加、刪除、修改、統計等操作。

圖2 總體功能模塊圖
(5)信息管理:對用戶信息進行增加、修改、刪除、查詢、統計等操作[4]。
(6)用戶功能:用戶密碼修改和系統使用幫助[5]。
如上所述,學生成果管理系統的總體需求如圖2所示。
數據庫是本系統的重中之重,通過對系統的詳細需求分析的基礎上,提煉了數據表之間的邏輯關系[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;
}}
論文管理、作品庫管理、競賽獲獎管理、創新項目管理這四個模塊之間很多功能是相似的,而且實現過程也是類似的。因此,本文就選擇論文管理查詢和審核來舉例,對實現過程進行詳細的說明。
(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 總結