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