楊正澤 吳育輝
(1、2.安順學(xué)院電子與信息工程學(xué)院,貴州 安順561000)
在“新工科”建設(shè)的背景下,為了實現(xiàn)對學(xué)生工程能力和創(chuàng)新能力的培養(yǎng)[1],高校積極鼓勵學(xué)生經(jīng)常參加各種各樣競賽活動以及其他創(chuàng)新實踐活動。競賽和創(chuàng)新實踐活動的種類越來越多,與之對應(yīng)的成果成倍增長,安順學(xué)院現(xiàn)采用傳統(tǒng)人工處理方式管理,工作量巨大而且效率低下,使得學(xué)生的成果管理工作變得很艱難。因此,有必要設(shè)計一個學(xué)生成果管理系統(tǒng),對學(xué)生競賽和創(chuàng)新成果進行系統(tǒng)管理,以便動態(tài)管理學(xué)生競賽和創(chuàng)新成果,以及后期查詢統(tǒng)計,進一步提高工作效率,保證信息的準確和規(guī)范。本系統(tǒng)實現(xiàn)了成果管理的一系列功能:論文、作品庫、競賽獲獎作品、創(chuàng)新項目管理以及統(tǒng)計和審核、用戶與系統(tǒng)管理。
根據(jù)本系統(tǒng)的使用場景,采用MVC以及B/S架構(gòu)來進行設(shè)計[2],系統(tǒng)架構(gòu)如圖1所示。
系統(tǒng)實現(xiàn)技術(shù)選用Java、Servlet3.0等,結(jié)合JSP、EasyUI技術(shù)作為前臺頁面,服務(wù)器采用tomcat7.0.47,用Mysql5.7數(shù)據(jù)庫保存數(shù)據(jù),用PowerDesigner16.5為本系統(tǒng)進行數(shù)據(jù)庫設(shè)計,在客戶端使用WEB瀏覽器登陸系統(tǒng)進行操作[3]。
圖1 系統(tǒng)架構(gòu)圖
本系統(tǒng)主要實現(xiàn)以下功能:
(1)論文管理:對學(xué)生投稿、發(fā)表的論文進行增加、刪除、修改、查詢、統(tǒng)計等操作。
(2)作品庫管理:對學(xué)生的課程設(shè)計、項目等方式完成的代表性作品進行增加、刪除、修改、查詢、統(tǒng)計等操作。
(3)競賽獲獎管理:對學(xué)生各類競賽獲獎的信息,如獲獎時間、等級、指導(dǎo)教師等,進行增加、刪除、修改、統(tǒng)計等操作。
(4)創(chuàng)新項目管理:對學(xué)生參加的大學(xué)生創(chuàng)新實踐項目、SRTP、互聯(lián)網(wǎng)+等信息進行增加、刪除、修改、統(tǒng)計等操作。
圖2 總體功能模塊圖
(5)信息管理:對用戶信息進行增加、修改、刪除、查詢、統(tǒng)計等操作[4]。
(6)用戶功能:用戶密碼修改和系統(tǒng)使用幫助[5]。
如上所述,學(xué)生成果管理系統(tǒng)的總體需求如圖2所示。
數(shù)據(jù)庫是本系統(tǒng)的重中之重,通過對系統(tǒng)的詳細需求分析的基礎(chǔ)上,提煉了數(shù)據(jù)表之間的邏輯關(guān)系[6],采用Mysql5.7 來建立和管理數(shù)據(jù)庫(achievement)。該數(shù)據(jù)庫由論文(thesis)、教師(teacher)、課題(subject)、學(xué)生(student)、課題級別(subjectGrade)、管理員(administer)、學(xué)生作品庫(achievement)、作品類別(achievementType)、學(xué)生競賽(competition)9個數(shù)據(jù)表構(gòu)成。系統(tǒng)鏈接數(shù)據(jù)庫代碼如下:
import java.sql.Connection;
import java.sql.DriverManager;
public abstract class JDBCTemplate
private String driverClass="com.mysql.jdbc.Driver";
//設(shè)置連接數(shù)據(jù)庫編碼
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 {
//加載驅(qū)動
Class.forName(driverClass);
//連接數(shù)據(jù)庫
Connection conn=DriverManager.getConnection(jdbcURL,user,pwd);
System.out.println("……數(shù)據(jù)庫已連接……");
return conn;
}}
論文管理、作品庫管理、競賽獲獎管理、創(chuàng)新項目管理這四個模塊之間很多功能是相似的,而且實現(xiàn)過程也是類似的。因此,本文就選擇論文管理查詢和審核來舉例,對實現(xiàn)過程進行詳細的說明。
(1)管理員查詢論文。
查詢論文界面如圖3所示。
圖3 查詢論文成功界面
查詢論文相關(guān)代碼如下:
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");//設(shè)置日期格式 member.put("subjectTime", df.format(a.get(i).getSubjectTime()));array.add(member);} } catch (Exception e) { e.printStackTrace();} (2)管理員審核論文。 審核論文界面如圖4所示。 圖4 論文審核頁面 審核相關(guān)代碼如下: 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); //發(fā)json 信息給客戶端 JSONObject messige=newJSONObject(); messige.put("successATH", true); response.setContentType("text/html;charset=utf-8"); response.getWriter().write(messige.toString()); } catch (Exception e) { //發(fā)json 信息給客戶端 JSONObject messige=new JSONObject(); messige.put("successATHErr", true); response.setContentType("text/html;charset=utf-8"); response.getWriter().write(messige.toString()); } } 論文審核數(shù)據(jù)保存代碼如下: public static Boolean AuditingThesis(final Thesis thesis,final int thesisId) throws Exception{ JDBCTemplate @Override protected Boolean doTransaction(Connection conn) throws Exception { // 根據(jù)指定論文id查詢論文信息 String sql = "update thesis set thesisAuditing=,aCard= where thesisId="; PreparedStatement ps=conn.prepareStatement(sql); // 對SQL語句的占位符參數(shù)進行動態(tài)賦值 ps.setInt(1,thesis.getThesisAuditing()); ps.setString(2, thesis.getAdminister().getaCard());//管理員的id ps.setInt(3, thesisId); return ps.execute(); }}; return t.execute(); } 針對目前高校學(xué)生成果管理過程中出現(xiàn)的效率問題,在充分調(diào)研、整理和分析需求的基礎(chǔ)之上,利用JavaEE+EasyUI、Mysql 、Tomcat技術(shù),設(shè)計和實現(xiàn)了適合學(xué)校實際管理特點的學(xué)生成果管理系統(tǒng),有助于提高教師對學(xué)生成果管理工作的效率和質(zhì)量,提升安順學(xué)院的信息化管理水平。5 總結(jié)