130java jsp企業(yè)人事員工l_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1、引言2</b></p><p><b>  2、系統(tǒng)分析3</b></p><p>  2.1 系統(tǒng)需求分析3</p><p>  2.2 本系統(tǒng)采用的關(guān)鍵技術(shù)4</p>

2、<p>  2.2.1 JSP技術(shù)4</p><p>  2.2.2 JavaBean技術(shù)5</p><p>  2.2.3 JDBC技術(shù)6</p><p>  2.2.4 用JDBC訪問數(shù)據(jù)庫7</p><p>  2.3 可行性分析10</p><p>  3、系統(tǒng)概要設(shè)計11</p&g

3、t;<p>  4、系統(tǒng)詳細(xì)設(shè)計12</p><p>  4.1 后臺數(shù)據(jù)庫設(shè)計12</p><p>  4.4.1 SqlServer2000介紹12</p><p>  4.4.2 數(shù)據(jù)庫表結(jié)構(gòu)13</p><p>  4.2 系統(tǒng)E-R圖15</p><p>  4.3 處理流程設(shè)計16

4、</p><p>  4.3.1 系統(tǒng)操作流程16</p><p>  4.3.2 數(shù)據(jù)增加流程17</p><p>  4.3.3 數(shù)據(jù)修改流程17</p><p>  4.4.4 數(shù)據(jù)刪除流程18</p><p>  4.4 系統(tǒng)模塊設(shè)計19</p><p>  4.4.1 管理員

5、登陸19</p><p>  4.4.2 員工信息管理21</p><p>  4.4.3 企業(yè)部門管理23</p><p>  4.4.4 培訓(xùn)信息管理25</p><p>  4.4.5 職工信息查詢27</p><p>  5、系統(tǒng)調(diào)試與測試31</p><p>  5.1 程

6、序調(diào)試31</p><p>  5.2 程序的測試31</p><p>  5.2.1 測試的重要性及目的31</p><p>  5.2.2 測試的步驟33</p><p>  5.2.3 測試的主要內(nèi)容33</p><p><b>  6、結(jié)論35</b></p>&

7、lt;p>  6.1 系統(tǒng)評價35</p><p>  6.2 安全性問題35</p><p><b>  致謝37</b></p><p><b>  參考文獻(xiàn)38</b></p><p><b>  1、引言</b></p><p> 

8、 隨著計算機(jī)技術(shù)的飛速發(fā)展,計算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計算機(jī)在實現(xiàn)企業(yè)人事檔案的管理勢在必行。當(dāng)今社會正快速向信息化社會前進(jìn),信息自動化的作用也越來越大。從而使我們從繁雜的事務(wù)中解放出來,提高了我們的工作效率。目前很多企業(yè)的人事管理還處于人工管理的階段,效率低下,已經(jīng)遠(yuǎn)遠(yuǎn)落后于當(dāng)今技術(shù)的發(fā)展。并且人工管理的弊端也愈來愈嚴(yán)重,由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報,而造成企業(yè)重大損失的事例層出不窮。計算機(jī)信息化管理有著儲存信

9、息量大,速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時快捷,同時也提高了我們工作人員的自身素質(zhì)。因此我們利用計算機(jī)提供給我們信息,做出了這個人事信息管理系統(tǒng)。人事管理系統(tǒng)是現(xiàn)在企業(yè)管理工作不可缺少的一部分是適應(yīng)現(xiàn)在企業(yè)制度的要求。推動企業(yè)勞動人事走向科學(xué)化、規(guī)范化的必要條件。傳統(tǒng)的辦公模式主要以紙介質(zhì)為主,在信息革命的浪潮中,顯然已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足高效率、快節(jié)奏的現(xiàn)代工作和生活的需要。如何實現(xiàn)信息處理的自動化和辦公的無紙化逐步得到了人們的重視

10、。如今,隨著計算機(jī)技術(shù)的普及人們開始采用MIS,它是集計算機(jī)技術(shù)、網(wǎng)絡(luò)通信技術(shù)為一體的信息系統(tǒng)工程,能使企業(yè)運(yùn)行的數(shù)據(jù)更加</p><p><b>  2、系統(tǒng)分析</b></p><p>  2.1 系統(tǒng)需求分析</p><p>  用戶登錄:用于登錄系統(tǒng);</p><p>  招聘管理:應(yīng)聘人員信息的詳細(xì)查看、刪除、

11、添加以及信息入庫;</p><p>  培訓(xùn)管理:培訓(xùn)計劃的詳細(xì)信息、信息刪除、添加培訓(xùn)計劃;</p><p>  人員管理:瀏覽人員信息、添加人員信息、人員信息的添加、人員信息的修改。 </p><p>  系統(tǒng)采用B/S模式。整個系統(tǒng)最關(guān)鍵的就是數(shù)據(jù)庫系統(tǒng),一個強(qiáng)大的數(shù)據(jù)庫可以支持完善一個優(yōu)秀的軟件設(shè)計,通過軟件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的連接來實現(xiàn)通過軟件界面觀察和處理

12、操作數(shù)據(jù)。</p><p>  圖3-1 系統(tǒng)模式圖</p><p>  系統(tǒng)采用三層結(jié)構(gòu),在客戶端用戶通過瀏覽器完成數(shù)據(jù)下載與模擬操作,瀏覽器端的表現(xiàn)邏輯通過JSP網(wǎng)頁完成。而系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯主要通過JavaBean的組件(Component)實現(xiàn),JavaBean組件在WWW服務(wù)器上運(yùn)行,通過JSP返回到客戶瀏覽器。通過表現(xiàn)邏輯與業(yè)務(wù)邏輯的分離,使網(wǎng)頁內(nèi)容簡潔,系統(tǒng)的可維護(hù)性和可

13、擴(kuò)充性增強(qiáng)。在服務(wù)器端,系統(tǒng)使用JDBC中間件訪問數(shù)據(jù)庫,數(shù)據(jù)庫服務(wù)器定義了本系統(tǒng)所需要的事務(wù)邏輯和數(shù)據(jù)邏輯。本系統(tǒng)使用JSP技術(shù)作為表現(xiàn)手段,服務(wù)器采用Tomcat 5.0.3作為JSP引擎,系統(tǒng)業(yè)務(wù)邏輯由JavaBean 組件完成,使用JDBC 3.0 驅(qū)動程序訪問數(shù)據(jù)庫。由于系統(tǒng)測試需要成熟的數(shù)據(jù)庫支持,因此系統(tǒng)采用MY SQL數(shù)據(jù)庫作為數(shù)據(jù)庫服務(wù)器。</p><p>  2.2 本系統(tǒng)采用的關(guān)鍵技術(shù)<

14、;/p><p>  2.2.1 JSP技術(shù)</p><p>  JSP是由Sun微系統(tǒng)公司于1999年6月推出的一項技術(shù),是基于JavaServlet以及整個Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、安全和跨平臺的動態(tài)網(wǎng)站。JSP技術(shù)在多個方面加速了動態(tài)Web頁面的開發(fā)。它主要有如下幾個方面的特點(diǎn):</p><p>  將內(nèi)容的生成和顯示進(jìn)行分離</

15、p><p>  使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面。使用JSP標(biāo)識或者腳本來生成頁面上的動態(tài)內(nèi)容(內(nèi)容是根據(jù)請求來變化的,例如請求帳號信息或者一本書的價格)。生成內(nèi)容的代碼被封裝在Servlet和JavaBean組件中,并且結(jié)合在腳本中,所有的腳本在服務(wù)器端運(yùn)行。</p><p>  JSP引擎解釋JSP標(biāo)識和腳本程序,生成所請求的內(nèi)容(例如

16、,通過訪問JavaBean組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫,或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。</p><p><b>  強(qiáng)調(diào)組件的重用</b></p><p>  絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件(JavaBean或者Enterpr

17、ise JavaBean組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用。此方法加速了總體開發(fā)進(jìn)程。</p><p>  采用標(biāo)識簡化頁面開發(fā)</p><p>  Web頁面人開發(fā)人員不都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能:訪問和實例化JavaBean組件、設(shè)置和檢索組件的屬性、下載Applet以及

18、執(zhí)行用其他方法更難于編碼和耗時的功能。</p><p>  JSP技術(shù)可以通過開發(fā)定制的標(biāo)識庫進(jìn)行擴(kuò)展。第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識一樣執(zhí)行特定功能的組件來工作。</p><p>  當(dāng)與Java2平臺、J2EE和Enterprise JavaBean(EJB)技術(shù)整合時,JSP頁面將提供企業(yè)級的擴(kuò)展性和性能,

19、這對于在企業(yè)中部署基于Web的應(yīng)用是必需的。</p><p>  與微軟公司的ASP技術(shù)相比,JSP具有如下優(yōu)點(diǎn):</p><p>  (1) 開放的技術(shù):JSP技術(shù)基于平臺和服務(wù)器的相互獨(dú)立,技術(shù)支持來自廣泛的、專門的、各種工具包,有服務(wù)器的組件和數(shù)據(jù)庫產(chǎn)品開發(fā)商提供。相比之下,ASP技術(shù)主要依賴MICROSOFT支持。</p><p>  (2) 平臺和服務(wù)器的

20、獨(dú)立性:JSP編寫的代碼可運(yùn)行在任何符合JAVA語法結(jié)構(gòu)的環(huán)境中。這樣JSP就能夠運(yùn)行在多種WEB服務(wù)器上并支持來自多家開發(fā)商提供的各種工具包。</p><p>  (3) 開放的開發(fā)過程,開放的源碼:自1995年以來,SUN用開放過程方法同國際JAVA組織合作開發(fā)和修改JAVA技術(shù)和規(guī)范。</p><p>  (4) JSP標(biāo)記可擴(kuò)充性:JSP技術(shù)能夠為開發(fā)者擴(kuò)展JSP標(biāo)記,充分利用與X

21、ML兼容的標(biāo)記技術(shù)強(qiáng)大的功能,大大減少對腳本語言的依賴。</p><p>  (5)JSP跨平臺的可重用性:JSP組件(EJB,JavaBean或定制的JSP標(biāo)記)都是跨平臺可重用的。</p><p>  2.2.2 JavaBean技術(shù)</p><p>  JSP作為一個很好的動態(tài)網(wǎng)站開發(fā)語言得到了越來越廣泛的應(yīng)用,在各類JSP應(yīng)用程序中,JSP + JavaBe

22、an的組合成為了一種事實上最常見的JSP程序的標(biāo)準(zhǔn). JavaBean是描述Java的軟件組件模型,有點(diǎn)類似于Microsoft的COM組件概念。在Java模型中,通過JavaBean可以無限擴(kuò)充Java程序的功能,通過JavaBean的組合可以快速的生成新的應(yīng)用程序。對于程序員來說,最好的一點(diǎn)就是JavaBean可以實現(xiàn)代碼的重復(fù)利用,另外對于程序的易維護(hù)性等等也有很重大的意義。JavaBean通過Java虛擬機(jī)(Java Virtu

23、al Machine)可以得到正確的執(zhí)行,具有平臺無關(guān)性。</p><p>  一個JavaBean有三個部分組成:</p><p>  屬性(Property)</p><p>  Bean的屬性就是對象的屬性,但提供了屬性讀取和設(shè)置的接口支持。例如一個時鐘Bean可以有時區(qū)和鎮(zhèn)鈴屬性,日歷Bean可以有年份和月份屬性。每個屬性通常遵守簡單的方法命名規(guī)則。這樣可以

24、很方便的找出Bean提供的屬性,然后查詢屬性值或改變屬性值,對Bean進(jìn)行操作。</p><p>  方法(Method)</p><p>  由于Bean本身是Java對象,調(diào)用這個對象的方法是與其交互作用的唯一途徑。JavaBean嚴(yán)格遵守面向?qū)ο蟮念愒O(shè)計邏輯,不讓外界訪問其任何實例字段(沒有Public字段)。這樣,方法調(diào)用的是接觸Bean的唯一途徑。</p><

25、p><b>  事件(Event)</b></p><p>  Bean與其他軟件組件交流信息的主要方式是發(fā)送和接收事件。這與對象之間通過消息通信類似。</p><p>  JavaBean傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從JSP誕生后,JavaBean更多的應(yīng)用在非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出來了越來越強(qiáng)的生命力。利用非可視化JavaB

26、ean, 來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和前臺程序(如JSP)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。</p><p>  2.2.3 JDBC技術(shù)</p><p>  JDBC是Java的開發(fā)者——Sun的JavaSoft公司制定的Java數(shù)據(jù)庫連接JavaDataBaseConnectivity技術(shù)的簡稱,是為各種常用數(shù)據(jù)庫提供無縫聯(lián)接的技術(shù)。JDBC在Web

27、和Internet應(yīng)用程序中的作用和ODBC在Windows系列平臺應(yīng)用程序中的作用類似。JDBC有一個非常獨(dú)特的動態(tài)連接結(jié)構(gòu),它使得系統(tǒng)模塊化。使用JDBC來完成對數(shù)據(jù)庫的訪問包括以下四個主要組件:Java的應(yīng)用程序、JDBC驅(qū)動器管理器、驅(qū)動器和數(shù)據(jù)源。簡單地說,JDBC能完成下列三件事: </p><p> ?。?)同一個數(shù)據(jù)庫建立連接; </p><p> ?。?)向數(shù)據(jù)庫發(fā)送SQ

28、L語句; </p><p> ?。?)處理數(shù)據(jù)庫返回的結(jié)果。</p><p>  JDBC是一種可用于執(zhí)行SQL語句的JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序設(shè)計接口)。它由一些Java語言寫的類、界面組成。JDBC給數(shù)據(jù)庫應(yīng)用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用

29、程序。 </p><p>  通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。也就是說,開發(fā)人員可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。不但如此,使用Java編寫的應(yīng)用程序可以在任何支持Java的平臺上運(yùn)行,不必在不同的平臺上

30、編寫不同的應(yīng)用。Java和JDBC的結(jié)合可以讓開發(fā)人員在開發(fā)數(shù)據(jù)庫應(yīng)用時真正實現(xiàn)“WriteOnce,RunEverywhere!” </p><p>  Java具有健壯、安全、易用等特性,而且支持自動網(wǎng)上下載,是一種很好的與數(shù)據(jù)庫線連接而使用的編程語言。它所需要的是Java應(yīng)用如何同各種各樣的數(shù)據(jù)庫連接,JDBC正是實現(xiàn)這種連接的關(guān)鍵。 </p><p>  JDBC擴(kuò)展了Java的能

31、力,如使用Java和JDBCAPI就可以公布一個Web頁,頁中帶有能訪問遠(yuǎn)端數(shù)據(jù)庫的Applet。或者企業(yè)可以通過JDBC讓全部的職工(他們可以使用不同的操作系統(tǒng),如Windwos,Machintosh或UNIX)在Intranet上連接到幾個全球數(shù)據(jù)庫上,而這幾個全球數(shù)據(jù)庫可以是不相同的。</p><p>  2.2.4 用JDBC訪問數(shù)據(jù)庫</p><p>  所有的數(shù)據(jù)庫的對象和方法

32、都在java.sql.* 里面,所以首先要import java.sql.*,要想連接數(shù)據(jù)庫,首先要將驅(qū)動程序調(diào)入。</p><p>  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");這是JDBC-ODBC 的驅(qū)動程序。 </p><p>  要想連接一個指定的數(shù)據(jù)庫,必須創(chuàng)建Connection類的一個實例。 </p

33、><p>  String url = "jdbc:odbc:Grocery prices"; </p><p>  Connection con = DriverManager.getConnection(url); </p><p>  注意在此用到的數(shù)據(jù)庫名稱是在ODBC設(shè)置控制面板中輸入的數(shù)據(jù)資源名。URL語法對于不同類型的數(shù)據(jù)庫會很不一樣。

34、 語法是這樣的: jdbc:subprotocol:subname 開頭都是JDBC,后面是子協(xié)議,然后是ODBC名稱。 </p><p>  若要使用純JDBC驅(qū)動程序,必須安裝第三方軟件提供的驅(qū)動程序,一般在數(shù)據(jù)庫的官方網(wǎng)站上可以找到這里不做討論。</p><p>  本系統(tǒng)采用JDBC-ODBC的驅(qū)動程序連接數(shù)據(jù)庫,并使用JavaBean組件,有效的避免了代碼的重復(fù),具體過程如下:&

35、lt;/p><p>  package exam; </p><p>  import java.sql.*; </p><p>  public class ExamBean {</p><p>  String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";//JDBC-ODB

36、C驅(qū)動程序</p><p>  String strDBUrl="jdbc:odbc:exam";</p><p>  private Connection conn=null;</p><p>  private Statement stmt=null;</p><p>  ResultSet rs=null;</

37、p><p>  //<!--注冊數(shù)據(jù)庫驅(qū)動程序--></p><p>  public ExamBean() {</p><p><b>  try {</b></p><p>  Class.forName(strDBDriver);</p><p><b>  }</b

38、></p><p>  //<!—異常處理--></p><p>  catch(java.lang.ClassNotFoundException e){</p><p>  System.err.println("exam():"+e.getMessage());</p><p><b>  

39、}</b></p><p><b>  }</b></p><p>  //<!—建立數(shù)據(jù)庫連接及定義數(shù)據(jù)查詢--></p><p>  public ResultSet executeQuery(String sql){</p><p><b>  rs=null;</b>

40、</p><p><b>  try{</b></p><p>  conn=DriverManager.getConnection(strDBDriver);//創(chuàng)建數(shù)據(jù)庫連接對象 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/

41、/支持?jǐn)?shù)據(jù)回滾</p><p>  rs=stmt.executeQuery(sql);</p><p>  }catch(SQLException ex){</p><p>  System.err.println("aq.executeQuery:"+ex.getMessage());</p><p><b>

42、;  }</b></p><p>  return rs;</p><p><b>  }</b></p><p>  //<!—定義數(shù)據(jù)更新操作--></p><p>  public void executeUpdate(String sql){</p><p>  s

43、tmt=null;</p><p><b>  try{</b></p><p>  conn=DriverManager.getConnection(strDBDriver);</p><p>  stmt=conn.createStatement();</p><p>  stmt.executeUpdate(sql

44、);</p><p>  stmt.close();</p><p>  }catch(SQLException ex){</p><p>  System.err.println("aq.executeQuery:"+ex.getMessage());</p><p><b>  }</b><

45、/p><p><b>  }</b></p><p>  //<!—關(guān)閉數(shù)據(jù)庫連接--></p><p>  public void closeStmt(){</p><p><b>  try{</b></p><p>  stmt.close();</p&g

46、t;<p>  }catch(SQLException e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void closeConn(){</p

47、><p><b>  try{</b></p><p>  conn.close();</p><p>  }catch(SQLException e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

48、<p><b>  }</b></p><p><b>  2.3 可行性分析</b></p><p>  首先,技術(shù)可行性。本系統(tǒng)僅需要一臺裝有Office軟件的計算機(jī)即可,對機(jī)器本身沒有太高的要求,一般當(dāng)前學(xué)?;騻€人電腦完全可滿足要求。對于軟件技術(shù)要求,現(xiàn)在的程序設(shè)計語言已非常成熟,要運(yùn)用HTML樣式,圖形圖象制作工具來制作生動活潑

49、的網(wǎng)頁及美觀的圖形文件或動畫文件。</p><p>  其次,經(jīng)濟(jì)可行性。由于本系統(tǒng)是為學(xué)生學(xué)習(xí)使用的系統(tǒng),裝上該應(yīng)用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后可以為學(xué)校節(jié)約大量的人力,物力。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。</p><p>  第三,操作可行性。界面設(shè)計時充分考慮管理人員的習(xí)慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠

50、;統(tǒng)計準(zhǔn)確;制表靈活;適應(yīng)力強(qiáng);容易擴(kuò)充。</p><p><b>  3、系統(tǒng)概要設(shè)計</b></p><p>  根據(jù)系統(tǒng)的功能需求分析,將本系統(tǒng)劃分為以下幾大模塊:</p><p><b>  系統(tǒng)功能模塊如下:</b></p><p>  人員管理模塊:該模塊主要功能是對人事管理的基礎(chǔ)信息、

51、員工基本信息、合同信息等進(jìn)行管理。</p><p>  招聘管理模塊:該模塊主要是對企業(yè)招聘信息、企業(yè)的應(yīng)聘信息、企業(yè)人才庫進(jìn)行管理。</p><p>  培訓(xùn)管理模塊:該模塊主要是對企業(yè)的培訓(xùn)計劃、培訓(xùn)實施、培訓(xùn)材料等信息進(jìn)行管理。</p><p>  系統(tǒng)管理模塊:該模塊主要功能是對操作員信息、操作員操作權(quán)限進(jìn)入管理。 </p><p>

52、;<b>  4、系統(tǒng)詳細(xì)設(shè)計</b></p><p>  4.1 后臺數(shù)據(jù)庫設(shè)計</p><p>  4.4.1 SqlServer2000介紹</p><p>  SqlServer2000是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為微軟公司。目前SqlServer2000被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總

53、體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了SqlServer2000作為網(wǎng)站數(shù)據(jù)庫。</p><p>  SqlServer2000是一個基于關(guān)系型數(shù)據(jù)庫模型建立的數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS)。它幫助用戶方使地得到所需信息,并提供強(qiáng)大的數(shù)據(jù)處理工具。它可以幫助用戶組織和共享數(shù)據(jù)庫信息,以便于根據(jù)數(shù)據(jù)庫信息作出有效的決策。另外,僅有這樣—個數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS),

54、則只能進(jìn)行一些信息系統(tǒng)所需要的簡單數(shù)據(jù)處理,且對操作者有較高的操作技能要求。因此,信息系統(tǒng)的開發(fā)者都是在某種數(shù)據(jù)庫管理系統(tǒng)軟件〔DBMS〕環(huán)境下編寫相應(yīng)的應(yīng)川程序,以形成一個能夠滿足應(yīng)用需求且操作盡可能簡單的應(yīng)用型信息系統(tǒng),這被稱之為二次開發(fā)。 </p><p>  SqlServer2000 還具有以下特點(diǎn):</p><p>  1.使信息更易于查找和使用</p><

55、p>  SqlServer2000繼續(xù)為簡便地查找信息提供易于使用的工具。</p><p>  2.支持 Web 功能的信息共享</p><p>  SqlServer2000 可以通過企業(yè)內(nèi)部網(wǎng)絡(luò)Internet 很簡便地實現(xiàn)信息共享,而且它可以很容易地將數(shù)據(jù)庫定位到瀏覽器中,它將桌面數(shù)據(jù)庫的功能和網(wǎng)站的功能結(jié)合在一起。</p><p>  3.用于信息管理

56、的強(qiáng)大解決方案</p><p>  高級用戶和開發(fā)人員可以創(chuàng)建那些將SqlServer2000界面(客戶端)的易用性和SQL服務(wù)器的可擴(kuò)展性和可靠性結(jié)合在一起的解決方案。</p><p>  4.改變了數(shù)據(jù)庫窗口</p><p>  可在SqlServer2000容納并顯示新的對象,增強(qiáng)了SqlServer2000 數(shù)據(jù)庫的易用性。</p><p

57、>  5.提供名稱自動更正功能</p><p>  自動解決當(dāng)用戶重新命名數(shù)據(jù)庫對象時出現(xiàn)的常見負(fù)面效應(yīng)。例如,當(dāng)用戶重命名表中的字段時,將自動在諸如查詢的相關(guān)對象中進(jìn)行相應(yīng)的更改。</p><p>  6.具有子數(shù)據(jù)表功能</p><p>  子數(shù)據(jù)表在同一窗口中,提供了嵌套式的視圖,這樣就可以在同一窗口中專注于相關(guān)的數(shù)據(jù)并對其進(jìn)行編輯。</p>

58、<p>  7. 用戶只需簡單地將SqlServer2000對象(表、查詢等)從數(shù)據(jù)庫放到ODBC數(shù)據(jù)源中,即可從 SqlServer2000中將數(shù)據(jù)導(dǎo)出到其他數(shù)據(jù)庫中。</p><p><b>  8.?dāng)?shù)據(jù)訪問頁功能</b></p><p>  該功能可使用戶快捷方便地創(chuàng)建數(shù)掂 HTML頁,并通過數(shù)據(jù) HTML頁,將數(shù)據(jù)庫應(yīng)用擴(kuò)展到企業(yè)內(nèi)部網(wǎng)絡(luò) In

59、ternet上。這將幫助用戶比以往更快捷、高效的方式共享信息。</p><p><b>  9.共享組件的集成</b></p><p>  SqlServer2000利用新的 Web組件和位于瀏覽器中的 COM 控件,為用戶提供了多種查看和分析數(shù)據(jù)的方式。</p><p><b>  10.交互性</b></p&g

60、t;<p>  SqlServer2000支持OLE DB,使用戶可以將SqlServer2000 界面的易用性與諸如SQL Server2000的后端企業(yè)數(shù)據(jù)庫的可升級性相結(jié)合。</p><p>  4.4.2 數(shù)據(jù)庫表結(jié)構(gòu)</p><p>  設(shè)計表“admin”</p><p>  設(shè)計表“depart”</p><p>

61、<b>  設(shè)計表“emp”</b></p><p>  設(shè)計表“recruitmenu”</p><p>  設(shè)計表“training”</p><p>  4.2 系統(tǒng)E-R圖</p><p>  4.3 處理流程設(shè)計</p><p>  4.3.1 系統(tǒng)操作流程</p><

62、;p>  4.3.2 數(shù)據(jù)增加流程</p><p>  添加信息時,編號字段由系統(tǒng)自動生成,且不能修改,其他信息由用戶輸入,之后對數(shù)據(jù)進(jìn)行合法判斷,合法則寫入保存至數(shù)據(jù)庫,不合法則重新輸入數(shù)據(jù)。數(shù)據(jù)增加流程圖:</p><p>  圖3.2 數(shù)據(jù)增加流程圖</p><p>  4.3.3 數(shù)據(jù)修改流程</p><p>  在修改信息時

63、,先選中一條待修改的記錄,然后直接輸入數(shù)據(jù),判斷合法性,合法則保存至數(shù)據(jù)庫,不合法重新輸入。數(shù)據(jù)修改流程圖如圖3.3所示。</p><p>  圖3.3 數(shù)據(jù)修改流程圖</p><p>  4.4.4 數(shù)據(jù)刪除流程</p><p>  當(dāng)用戶選定一條記錄時,單擊刪除按鈕,會提示用戶是否確定刪除,然后刪除數(shù)據(jù)庫相關(guān)內(nèi)容。數(shù)據(jù)刪除流程圖如圖3.4所示。</p&g

64、t;<p>  圖3.4 數(shù)據(jù)刪除流程圖</p><p>  4.4 系統(tǒng)模塊設(shè)計</p><p>  4.4.1 管理員登陸</p><p>  當(dāng)?shù)顷憰r,首先出現(xiàn)的是一個用戶登陸的界面,主要是維護(hù)系統(tǒng)的安全性和完整性。界面如下圖所示:</p><p><b>  主要代碼如下:</b></p&g

65、t;<p>  package util;</p><p>  import java.sql.*;</p><p>  public class DBConn {</p><p><b>  static{</b></p><p><b>  try{</b></p>

66、<p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");</p><p>  // Class.forName("com.SqlServer2000.jdbc.Driver"); </p><p>  // Class.forN

67、ame("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  }catch(Exception ex){</p><p>  ex.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b>

68、</p><p>  public static Connection getConn(){</p><p><b>  try{</b></p><p>  Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;d

69、atabasename=hshygl","sa","123");</p><p>  // conn = DriverManager.getConnection("jdbc:SqlServer2000://localhost/fzshop","root","123");</p>

70、<p>  // Connection conn=DriverManager.getConnection("jdbc:odbc:temp");</p><p>  return conn;</p><p>  }catch(Exception ex){</p><p>  ex.printStackTrace();&l

71、t;/p><p>  return null;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public static void close(Connection conn,Statement st,ResultSet rs){</p>

72、<p>  if(rs!=null){</p><p><b>  try{</b></p><p>  rs.close();</p><p>  }catch(SQLException ex){</p><p><b>  }</b></p><p><

73、;b>  }</b></p><p>  if(st!=null){</p><p><b>  try {</b></p><p>  st.close();</p><p>  }catch(Exception ex){</p><p><b>  }</b&

74、gt;</p><p><b>  }</b></p><p>  if(conn!=null){</p><p><b>  try{</b></p><p>  conn.close();</p><p>  }catch(Exception ex){</p>

75、<p><b>  }</b></p><p>  4.4.2 員工信息管理</p><p>  管理員可以對員工信息進(jìn)行管理,包括對員工信息的添加、修改、刪除等操作。界面如下圖所示:</p><p><b>  主要代碼如下:</b></p><p>  package util;&

76、lt;/p><p>  import java.io.UnsupportedEncodingException;</p><p>  import java.text.SimpleDateFormat;</p><p>  import java.util.Date;</p><p>  public class Validate {</p

77、><p><b>  /**</b></p><p>  * 是否為數(shù)字和英文驗證</p><p><b>  *</b></p><p><b>  */</b></p><p>  public int getIntAndChar(String str)

78、{</p><p><b>  char c;</b></p><p><b>  int i;</b></p><p>  for (i = 0; i<str.length(); i++){</p><p>  c = str.charAt(i);</p><p> 

79、 if(!((c>='0' && c<='9') || (c>='a' && c<='z') || (c>='A' && c<='Z'))){</p><p><b>  break;</b></p>

80、<p><b>  }</b></p><p>  }//判斷字符是否在某個區(qū)間</p><p>  if(i < str.length()){</p><p>  return -1;</p><p><b>  }else{</b></p><p>&l

81、t;b>  return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 是否為整數(shù)驗證</b></p>

82、<p><b>  *</b></p><p><b>  */</b></p><p>  public int getInt(String str){</p><p><b>  char c;</b></p><p><b>  int i;<

83、;/b></p><p>  for (i = 0; i<str.length(); i++){</p><p>  c = str.charAt(i);</p><p>  if(!(c>='0' && c<='9')){</p><p><b>  brea

84、k;</b></p><p><b>  }</b></p><p>  }//判斷字符是否在某個區(qū)間</p><p>  if(i < str.length()){</p><p>  return -1;</p><p><b>  }else{</b>

85、</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 是否為非法字符驗證<

86、/p><p><b>  *</b></p><p><b>  */</b></p><p>  public boolean getLawlessChar(String str){</p><p>  boolean flag = false;</p><p><b&g

87、t;  char c;</b></p><p>  for(int i = 0;i < str.length();i++){</p><p>  c = str.charAt(i);</p><p>  switch(c){</p><p>  case '<' : flag = true; break

88、;</p><p>  case '>' : flag = true; break;</p><p>  case '"' : flag = true; break;</p><p>  case '&' : flag = true; break;</p><p>  c

89、ase ' ' : flag = true; break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p&g

90、t;  4.4.3 試用期登記管理</p><p>  管理員可以對企業(yè)試用期登記進(jìn)行設(shè)置,包括添加、或刪除試用期登記等操作。界面如下圖所示:</p><p><b>  主要代碼如下:</b></p><p>  package util;</p><p>  import java.io.UnsupportedEnc

91、odingException;</p><p>  import java.text.SimpleDateFormat;</p><p>  import java.util.Date;</p><p>  public class Validate {</p><p><b>  /**</b></p>

92、<p>  * 是否為數(shù)字和英文驗證</p><p><b>  *</b></p><p><b>  */</b></p><p>  public int getIntAndChar(String str){</p><p><b>  char c;</b>&

93、lt;/p><p><b>  int i;</b></p><p>  for (i = 0; i<str.length(); i++){</p><p>  c = str.charAt(i);</p><p>  if(!((c>='0' && c<='9

94、9;) || (c>='a' && c<='z') || (c>='A' && c<='Z'))){</p><p><b>  break;</b></p><p><b>  }</b></p><p&g

95、t;  }//判斷字符是否在某個區(qū)間</p><p>  if(i < str.length()){</p><p>  return -1;</p><p><b>  }else{</b></p><p><b>  return 0;</b></p><p>&l

96、t;b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 是否為整數(shù)驗證</b></p><p><b>  *</b></p><p&

97、gt;<b>  */</b></p><p>  public int getInt(String str){</p><p><b>  char c;</b></p><p><b>  int i;</b></p><p>  for (i = 0; i<str.

98、length(); i++){</p><p>  c = str.charAt(i);</p><p>  if(!(c>='0' && c<='9')){</p><p><b>  break;</b></p><p><b>  }</b

99、></p><p>  }//判斷字符是否在某個區(qū)間</p><p>  if(i < str.length()){</p><p>  return -1;</p><p><b>  }else{</b></p><p><b>  return 0;</b>

100、</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 是否為非法字符驗證</p><p><b>  *</b></p>

101、<p><b>  */</b></p><p>  public boolean getLawlessChar(String str){</p><p>  boolean flag = false;</p><p><b>  char c;</b></p><p>  for(int

102、 i = 0;i < str.length();i++){</p><p>  c = str.charAt(i);</p><p>  switch(c){</p><p>  case '<' : flag = true; break;</p><p>  case '>' : flag

103、= true; break;</p><p>  case '"' : flag = true; break;</p><p>  case '&' : flag = true; break;</p><p>  case ' ' : flag = true; break;</p>&l

104、t;p><b>  }</b></p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p>  4.4.4 提醒信息管理</p><p>  管理員可以對員工生日提醒

105、信息進(jìn)行管理,包括對添加、修改、刪除等操作。界面如下圖所示:</p><p><b>  主要代碼如下:</b></p><p>  package servlet;</p><p>  import java.io.IOException;</p><p>  import java.io.PrintWriter;&l

106、t;/p><p>  import java.text.SimpleDateFormat;</p><p>  import java.util.Calendar;</p><p>  import java.util.Date;</p><p>  import javax.servlet.RequestDispatcher;</p>

107、;<p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServlet;</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.ser

108、vlet.http.HttpServletResponse;</p><p>  import util.Validate;</p><p>  import bean.InsertUpdateDelBean;</p><p>  public class AmountServlet extends HttpServlet {</p><p>

109、;<b>  /**</b></p><p>  * Constructor of the object.</p><p><b>  */</b></p><p>  public AmountServlet() {</p><p><b>  super();</b><

110、;/p><p><b>  }</b></p><p><b>  /**</b></p><p>  * Destruction of the servlet. <br></p><p><b>  */</b></p><p>  publi

111、c void destroy() {</p><p>  super.destroy(); // Just puts "destroy" string in log</p><p>  // Put your code here</p><p><b>  }</b></p><p><b>

112、;  /**</b></p><p>  * The doGet method of the servlet. <br></p><p><b>  *</b></p><p>  * This method is called when a form has its tag value method equals to

113、 get.</p><p><b>  * </b></p><p>  * @param request the request send by the client to the server</p><p>  * @param response the response send by the server to the client&

114、lt;/p><p>  * @throws ServletException if an error occurred</p><p>  * @throws IOException if an error occurred</p><p><b>  */</b></p><p>  public void doGet(H

115、ttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  doPost(request, response);</p><p><b>  }</b></p>

116、<p><b>  /**</b></p><p>  * The doPost method of the servlet. <br></p><p><b>  *</b></p><p>  * This method is called when a form has its tag val

117、ue method equals to post.</p><p><b>  * </b></p><p>  * @param request the request send by the client to the server</p><p>  * @param response the response send by the s

118、erver to the client</p><p>  * @throws ServletException if an error occurred</p><p>  * @throws IOException if an error occurred</p><p><b>  */</b></p><p> 

119、 public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  response.setContentType("text/html;charset=gb2312"

120、;);</p><p>  request.setCharacterEncoding("gb2312");</p><p>  String id = request.getParameter("id");</p><p>  String amount = request.getParameter("amount&

121、quot;);</p><p>  String sql = "update users set amount=amount+"+amount+" where id="+id;</p><p>  InsertUpdateDelBean ib = new InsertUpdateDelBean();</p><p>  ib.

122、insertANDupdateANDdel(sql);</p><p>  sql = "insert into payment(usersid,name,price) values("+id+",' ',"+amount+")";</p><p>  ib.insertANDupdateANDdel(sql);&

123、lt;/p><p>  request.setAttribute("message", "操作成功!");</p><p>  RequestDispatcher rd=request.getRequestDispatcher("/admin/users_amount.jsp");</p><p>  rd.f

124、orward(request,response);</p><p><b>  }</b></p><p><b>  5、系統(tǒng)調(diào)試與測試</b></p><p><b>  5.1 程序調(diào)試</b></p><p>  在設(shè)計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法

125、錯誤,在程序運(yùn)行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現(xiàn)和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或?qū)δ承?shù)據(jù)的計算公式的邏輯錯誤導(dǎo)致的錯誤結(jié)果。這類錯誤隱蔽性強(qiáng),有時會出現(xiàn),有時又不出現(xiàn),因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費(fèi)力的。</p><p><b>  5.2 程序的測試</b></p><p>  5.2.1 測試的重要性及目的&

126、lt;/p><p><b>  (1)測試的重要性</b></p><p>  軟件的測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測試,從而檢驗本階段的成果是否接近預(yù)期的目標(biāo),盡可能早的發(fā)現(xiàn)錯誤并加以修正,

127、如果不在早期階段進(jìn)行測試,錯誤的延時擴(kuò)散常常會導(dǎo)致最后成品測試的巨大困難。 </p><p>  事實上,對于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會有錯。采用新的語言、先進(jìn)的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進(jìn)行估計。測試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計的那天起測試就一

128、直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護(hù)工作相當(dāng)于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。 </p><p>  在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確

129、的看法和錯誤的態(tài)度,這包括: </p><p> ?、?認(rèn)為測試工作不如設(shè)計和編碼那樣容易取得進(jìn)展難以給測試人員某種成就感; </p><p> ?、?以發(fā)現(xiàn)軟件錯誤為目標(biāo)的測試是非建設(shè)性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責(zé)任者工作的一種否定; </p><p> ?、?測試工作枯燥無味,不能引起人們的興趣; </p><p> ?、?測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論