摘 要:用計(jì)算機(jī)管理教師信息具有可靠、方便、省時(shí)省力的特點(diǎn)。當(dāng)今各種管理軟件大部分只針對(duì)一個(gè)學(xué)?;蛘吒蟮姆秶鷣?lái)編寫(xiě),它具有通用性良好的特點(diǎn),但對(duì)于小領(lǐng)域如一個(gè)系來(lái)說(shuō),它就很難適應(yīng)這個(gè)系特殊的管理。而該設(shè)計(jì)正是基于計(jì)算機(jī)系教師信息管理的特點(diǎn)來(lái)開(kāi)發(fā)的。它可以實(shí)現(xiàn)教師信息的錄入、添加、修改、刪除、查詢(xún)、保存到Excel、打印預(yù)覽等基本功能。同時(shí)還為管理者提供統(tǒng)計(jì)、制表、系統(tǒng)日志、開(kāi)介紹信等特色功能。該系統(tǒng)具有界面友好、操作方便、成本低廉、符合管理者習(xí)慣的特點(diǎn)。另外,系統(tǒng)采用Java語(yǔ)言開(kāi)發(fā),具有可移植性良好、不依賴(lài)于操作系統(tǒng)的特點(diǎn)。同時(shí)采用SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)做數(shù)據(jù)庫(kù),是因?yàn)樗哂泄芾矸奖悖鎯?chǔ)量大的特點(diǎn),適合計(jì)算機(jī)系信息管理的要求。相信該系統(tǒng)的開(kāi)發(fā)必將極大的方便計(jì)算機(jī)系教師信息管理者的管理。
關(guān)鍵詞:Java 信息管理系統(tǒng) 數(shù)據(jù)庫(kù) 模式
中圖分類(lèi)號(hào):TP311.13\t\t文獻(xiàn)標(biāo)識(shí)碼:A\t\t\t文章編號(hào):1672-3791(2011)10(a)-0006-02
大部分的信息管理系統(tǒng)中大部分是針對(duì)一個(gè)學(xué)?;蛘咭粋€(gè)單位設(shè)計(jì)的,從宏觀上說(shuō)確實(shí)方便了學(xué)?;蛘邌挝唬珡奈⒂^上講卻不適合小型組織的要求,例如一個(gè)系。因此開(kāi)發(fā)一個(gè)針對(duì)學(xué)校的某個(gè)部門(mén)的教職工信息管理系統(tǒng)就顯得尤為重要。 本系統(tǒng)的開(kāi)發(fā)目的是開(kāi)發(fā)一款適合計(jì)算機(jī)系教職工信息管理特點(diǎn)的軟件,來(lái)方便管理者對(duì)這些信息的管理。
1 開(kāi)發(fā)工具簡(jiǎn)介
本系統(tǒng)使用JDK1.4.0作為開(kāi)發(fā)環(huán)境,編程語(yǔ)言為Java,使用SQL Server2000做數(shù)據(jù)庫(kù)。
Java是在C++的基礎(chǔ)上研制開(kāi)發(fā)的,它克服了C++語(yǔ)言在編寫(xiě)程序時(shí)的缺點(diǎn),如:指針的使用,使得編程更加簡(jiǎn)單。它主要有以下特點(diǎn):(1)可移性:Java本身具備很好的可移植性,可以適用于各種系統(tǒng)。(2)解釋性:Java解釋器能直接地在任何機(jī)器上執(zhí)行Java位元碼,因此在進(jìn)行程序聯(lián)結(jié)時(shí),節(jié)省時(shí)間,這對(duì)于縮短程序的開(kāi)發(fā)過(guò)程,有極大的幫助。(3)安全性:Java是被設(shè)計(jì)用于網(wǎng)絡(luò)及分布式的環(huán)境中,安全性當(dāng)然是一個(gè)很重要的考慮。Java擁有數(shù)個(gè)階層的互鎖保護(hù)措施,能有效地防止病毒的侵入和破壞行為的發(fā)生。(4)結(jié)構(gòu)中立性:如何使一個(gè)應(yīng)用程序可以在每一種機(jī)器上執(zhí)行,是一個(gè)難題。Java的編譯器產(chǎn)生一種結(jié)構(gòu)中立的目標(biāo)文件格式,這使得編譯碼得以在很多種處理器中執(zhí)行。
Microsoft SQL Server 2000是Microsoft公司于2000年底推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它具有以下幾個(gè)主要特點(diǎn):(1)豐富的圖形化管理工具,使系統(tǒng)管理、操作更為方便。(2)動(dòng)態(tài)自動(dòng)管理和優(yōu)化功能。(3)充分的Internet技術(shù)支持。(4)豐富的編程接口工具,使用戶(hù)開(kāi)發(fā)SQL Server數(shù)據(jù)庫(kù)應(yīng)用程序更加靈活。(5)具有良好的伸縮性和可靠性。(6)管理方式簡(jiǎn)單化。
2 系統(tǒng)分析
本系統(tǒng)旨在為計(jì)算機(jī)系教職工信息管理者提供一個(gè)方便、經(jīng)濟(jì)實(shí)用的軟件,因此在設(shè)計(jì)之初便圍繞以下目標(biāo)展開(kāi):(1)方便管理者管理;(2)最大限度的提供教工的信息量,以方便管理者按實(shí)際要求來(lái)制作統(tǒng)計(jì)報(bào)表;(3)盡量節(jié)省系統(tǒng)資源。
2.1 系統(tǒng)的功能模塊
根據(jù)調(diào)研,教職工信息的管理流程大體是:管理者錄入信息→管理者查詢(xún)、修改、添加、刪除、統(tǒng)計(jì)信息→制表→輸出、打印信息。因此本系統(tǒng)主要可以實(shí)現(xiàn)教職工信息的錄入、查詢(xún)、修改、刪除、統(tǒng)計(jì)、根據(jù)實(shí)際情況制表、輸出到Excel、打印報(bào)表信息。另外本系統(tǒng)還提供系統(tǒng)日志、管理員改密、開(kāi)介紹信、以及幫助信息和數(shù)據(jù)庫(kù)備份和恢復(fù)操作的功能。如圖1所示。
2.2 功能描述
(1)系統(tǒng)維護(hù)模塊。
[手工備份]可以選擇備份路徑,填寫(xiě)備份名稱(chēng)從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份的功能。
[數(shù)據(jù)庫(kù)恢復(fù)]選擇已備份的數(shù)據(jù)庫(kù)備份文件路徑,系統(tǒng)根據(jù)此路徑實(shí)現(xiàn)數(shù)據(jù)庫(kù)的恢復(fù)。
[系統(tǒng)日志]向用戶(hù)提供插入、刪除、修改、添加記錄信息的操作日志以及修改密碼和數(shù)據(jù)庫(kù)恢復(fù)、備份的系統(tǒng)日志。
[修改密碼]用戶(hù)可以通過(guò)此項(xiàng)功能實(shí)現(xiàn)用戶(hù)名和密碼的修改。
(2)常用表查詢(xún)模塊。
[外系教工情況表]在此模塊中可以實(shí)現(xiàn)對(duì)外系教工情況的基本查詢(xún)、高級(jí)查詢(xún)、添加、修改、刪除、全部刪除、刷新、統(tǒng)計(jì)、打印預(yù)覽、導(dǎo)出到Excel的功能。
[本系教工情況表]、[教工學(xué)歷職稱(chēng)表]、[教工人事調(diào)動(dòng)表]、[教工黨政情況表]、[教工培訓(xùn)情況表]、[任課情況表]、[課程設(shè)置表]、 [教工科研表]、[教工專(zhuān)利表]、[教工專(zhuān)著表]、[學(xué)生成績(jī)表]、[學(xué)生情況表]、[畢業(yè)設(shè)計(jì)表]、[畢設(shè)情況表]均和上述情況類(lèi)似,不再贅述。
[開(kāi)介紹信]此功能相當(dāng)于為管理者打開(kāi)一個(gè)類(lèi)似于Microsoft Word的編譯器,使管理者可以在其中書(shū)寫(xiě)介紹信,然后預(yù)覽打印介紹信。
(3)制表與統(tǒng)計(jì)功能模塊。
[制表統(tǒng)計(jì)]在此模塊中,管理者可以實(shí)現(xiàn)隨心所欲的制表,也就是說(shuō)可以根據(jù)不同的需要來(lái)選擇不同的字段來(lái)制作想要的表格。在此模塊中同樣可以實(shí)現(xiàn)統(tǒng)計(jì)、保存到Excel的功能。
(4)基表維護(hù)。
[教工基表維護(hù)]在此模塊中可以實(shí)現(xiàn)對(duì)教工基本情況的基本查詢(xún)、高級(jí)查詢(xún)、添加、修改、刪除、全部刪除、統(tǒng)計(jì)、刷新、打印預(yù)覽、導(dǎo)出到Excel的功能。
[課程基表維護(hù)]、[科研基表維護(hù)]、[專(zhuān)利基表維護(hù)]、[專(zhuān)著基表維護(hù)]、[畢設(shè)基表維護(hù)]、[系別基表維護(hù)]、[學(xué)生基表維護(hù)]均與上述情況類(lèi)似,不再贅述。
(5)幫助功能模塊。
[關(guān)于本系統(tǒng)]此功能主要是查看系統(tǒng)的版本、版權(quán)、項(xiàng)目開(kāi)發(fā)者、主題等信息。
[使用幫助]此功能模塊的作用主要是查詢(xún)某個(gè)功能(如:修改)的如何使用,幫助信息使用chm幫助文檔格式編寫(xiě)。
[相關(guān)說(shuō)明]此功能主要是向管理者說(shuō)明在使用的時(shí)候應(yīng)注意的事項(xiàng)。采用Word文檔的形式實(shí)現(xiàn)。
(6)退出功能模塊。
實(shí)現(xiàn)退出系統(tǒng)的功能。
(7)系統(tǒng)登錄模塊。
此模塊主要實(shí)現(xiàn)對(duì)非法用戶(hù)的限制進(jìn)入,如果用戶(hù)是合法用戶(hù)則可以進(jìn)入系統(tǒng)進(jìn)行合法的操作,如果是非法用戶(hù)就無(wú)法進(jìn)入系統(tǒng)進(jìn)行操作。
3 系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)是一個(gè)單機(jī)版的軟件,只對(duì)教工信息管理者開(kāi)放,因此在系統(tǒng)登錄時(shí)就設(shè)置了系統(tǒng)默認(rèn)的密碼,在管理員第一次登錄時(shí)就會(huì)讓管理員輸入系統(tǒng)登錄的默認(rèn)密碼,在驗(yàn)證無(wú)誤后系統(tǒng)將呈現(xiàn)打開(kāi)狀態(tài),這時(shí)管理者就會(huì)取得所有權(quán)限,實(shí)現(xiàn)上述功能模塊的各個(gè)功能。以下簡(jiǎn)單敘述了兩個(gè)關(guān)鍵部分的代碼。
3.1 數(shù)據(jù)庫(kù)連接
本系統(tǒng)連接數(shù)據(jù)庫(kù)采用JDBC橋的模式,這是一種Java語(yǔ)言直接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的模式,它的最大的好處在于不用像ODBC那樣,配置本地?cái)?shù)據(jù)源和驅(qū)動(dòng)。連庫(kù)代碼如下。
String url=\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =tmmstem\";//連接路徑為本地連接,數(shù)據(jù)庫(kù)名為tmmstem
String username = \"sa\";//登錄數(shù)據(jù)庫(kù)時(shí)的用戶(hù)名為sa
String password = \"\";//登錄數(shù)據(jù)庫(kù)時(shí)的密碼為空
try
{
Class.forName( \"com.microsoft.jdbc.sqlserver.SQLServerDriver\"); //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
connection = DriverManager.getConnection(
url, username, password );
statement = connection.createStatement(); //創(chuàng)建連接
}
catch ( ClassNotFoundException cnfex )
{
System.err.println(\"裝載 JDBC/ODBC 驅(qū)動(dòng)程序失敗。\" );
cnfex.printStackTrace();
System.exit( 1 );
}
catch ( SQLException sqlex )
{
System.err.println( \"無(wú)法連接數(shù)據(jù)庫(kù)\" );
sqlex.printStackTrace();
System.exit( 1 );
}
3.2 與EXCEL數(shù)據(jù)的交互
管理者所能執(zhí)行的操作為工具欄中的刪除、全部刪除、保存到Excel三項(xiàng)。
首先介紹刪除。刪除遵循先選中后刪除的原則,即當(dāng)管理者想刪除某一行時(shí)必須先選中此行,然后點(diǎn)擊刪除按鈕就會(huì)刪除選中的行并重繪表格。具體選中代碼如下。
table.addMouseListener(new LeftClickListener(table));//給表格添加鼠標(biāo)點(diǎn)擊事件偵聽(tīng)器
/*以下是新定義的鼠標(biāo)點(diǎn)擊事件偵聽(tīng)處理類(lèi)*/
class LeftClickListener extends MouseAdapter {
public LeftClickListener(JTable table){this.table=table;}
public void mousePressed(MouseEvent e) {
int row = table.rowAtPoint(e.getPoint());//記錄鼠標(biāo)點(diǎn)擊時(shí)所在的行
}
}
}
以上代碼只是選中一行的情況,即每次鼠標(biāo)點(diǎn)擊后,所選中的行號(hào)row就會(huì)隨之變化。因此點(diǎn)擊刪除按鈕后,只會(huì)刪除鼠標(biāo)最后一次點(diǎn)擊時(shí)所在的行號(hào)。另外本系統(tǒng)還有支持多行選中的代碼,由于篇幅所限,將在附錄中給出。
當(dāng)選中操作完成后,管理者只要點(diǎn)擊刪除按鈕就會(huì)執(zhí)行刪除行的SQL語(yǔ)句。
query=\"delete xtrzhi where xhao='\"+defaultModel.getValueAt(j,0)+\"'\";//刪除表格中選定的第j行
其中的j就是要?jiǎng)h除的行,defaultModel.getValueAt(j,0)是得到此行的編號(hào)。
當(dāng)管理者刪除操作成功后,程序就會(huì)自動(dòng)重繪表格,讓它顯示刪除后的所有記錄。即執(zhí)行代碼table.revalidate();//表格重繪。同時(shí)會(huì)彈出提示窗口提示管理者刪除成功。
全部刪除和刪除代碼基本相同,只是不用選定行,因此不再贅述。而保存到Excel有兩種形式。一種是把結(jié)果集保存到Excel,另一種是把當(dāng)前表格保存到Excel。第一種形式中,必須在保存之前先執(zhí)行查詢(xún)語(yǔ)句,然后,把查詢(xún)語(yǔ)句的結(jié)果集即rs.getMetaData(),傳遞給應(yīng)用程序。然后應(yīng)用程序就會(huì)自動(dòng)把結(jié)果集中的每一個(gè)值保存到相應(yīng)的Excel表中。其中寫(xiě)入Excel表單元值的代碼如下。
while(rs.next())
{row= sheet.createRow((short)iRow);;
for(int j=1;j<=nColumn;j++)
{
cell = row.createCell((short)(j-1));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
if(rs.getObject(j)!=1)//如果結(jié)果集中的某一列為空值單元格內(nèi)容就設(shè)置為空格
cell.setCellValue(rs.getObject(j).toString().trim());
else cell.setCellValue(\" \");
}
iRow++;
}
把表格中的數(shù)據(jù)導(dǎo)入到Excel與上述情況類(lèi)似,只不過(guò)是將表格的模式傳遞給應(yīng)用程序,然后執(zhí)行類(lèi)似的操作,同時(shí)修改為以下代碼。
//設(shè)置單元格的值為要導(dǎo)出表格的某一單元格的值。
cell.setCellValue(defaultModel.getValueAt(i,j).toString().trim())。
4 結(jié)語(yǔ)
本系統(tǒng)基本實(shí)現(xiàn)了對(duì)教工信息的錄入、查詢(xún)、修改、刪除、統(tǒng)計(jì)、輸出到Excel等常用的功能,這些功能操作方便、實(shí)現(xiàn)代碼簡(jiǎn)潔、符合管理者的操作習(xí)慣。除這些特點(diǎn)外本系統(tǒng)最大的特點(diǎn)就是可以按照管理者的意愿制表以及實(shí)現(xiàn)多重統(tǒng)計(jì)。
本系統(tǒng)的成功開(kāi)發(fā)將極大的方便計(jì)算機(jī)系教職工信息管理者的管理,同時(shí)只要本軟件稍加改動(dòng)還可以滿(mǎn)足其它各系對(duì)教工信息的管理。本系統(tǒng)除了對(duì)小型部門(mén)的適用以外,還具有跨平臺(tái)性良好的特點(diǎn),適用于各個(gè)系統(tǒng),如Windows XP、2000、98、Linux、Unix等。是一款不依賴(lài)于操作系統(tǒng)的軟件。另外它還具有運(yùn)行成本低廉的特點(diǎn),使用者只需要安裝SQL Server2000數(shù)據(jù)庫(kù)和Java虛擬機(jī)即可運(yùn)行此軟件。
參考文獻(xiàn)
[1]\t(美)avid Flanagan.Java實(shí)例技術(shù)手冊(cè)[M].中國(guó)電力出版社,2001,11.
[2]\t(美)斯貝爾.Java高級(jí)編程[M].清華大學(xué)出版社,2006,12.
[3]\t飛思科技產(chǎn)品研發(fā)中心.Java 2應(yīng)用開(kāi)發(fā)指[M].電子工業(yè)出版社,2003,1.
[4]\t魏海萍.標(biāo)準(zhǔn)Java 2使用手冊(cè)[M].電子工業(yè)出版社,2005,1.
[5]\t唐小軍,等.Java項(xiàng)目設(shè)計(jì)與開(kāi)發(fā)范例[M].電子工業(yè)出版社,2005,4.
[6]\t(美)Bruce Eckel.Java編程思想[M].機(jī)械工業(yè)出版社,1999,4.
[7]\t薩師煊.?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論[M].高等教育出版社,2003,2.
[8]\t閃四清.Server簡(jiǎn)明教程[M].清華大學(xué)出版社,2005,5.
[9]\t朱福喜,唐曉軍.Java程序設(shè)計(jì)技巧與開(kāi)發(fā)實(shí)例[M].人民郵電出版社,2004,4.
[10]\t張孝祥.Java就業(yè)培訓(xùn)教程[M].清華大學(xué)出版社,2003,9.