課程設計開發總結

來源:互聯網
上載者:User

     前幾天做了個學生管理系統的課程設計,現在做點小結。

      首先,由於自己對java比較熟悉,所以決定用java作為開發語言。資料庫採用SQL Server2000,開發工具選用開源的 Eclipse3.0 。由於這是我第一次用 Eclipse,所以花了不少時間在熟悉工具上。

實現功能:

         能夠實現對資料庫中學生、課程、班級三個表的維護與查詢,可以添加、修改、刪除、瀏覽任一條記錄,對任一表中的資料按不同的條件查詢,並可以多個條件組合查詢。出於基本的安全考慮,資料庫操作只能由特定的授權人員進行,所以也包含身分識別驗證功能。

開發過程:
         1月7日~1月9日:這幾Apsara Infrastructure Management Framework本都在摸索工具的使用。Eclipse 的功能是比較強大的,加上可視外掛程式,可以方便地自動產生介面代碼。整個程式的架構借鑒了jdk內建的demo中的 Metalworks ,這個demo示範了多文檔程式的實現,對我有很大的參考價值,最後我的程式從代碼到介面都受其影響,對於代碼的正常化有很大協助。
 這次吸取了以前的教訓,在開發前對整個程式的結構做了一定的規劃,把各個功能分成不同模組,最後整合在一起,然後單獨一個包含main方法的類。這樣做雖然開始花費了不少時間,但在後面卻極大地方便了功能的添加和實現,這次經曆使我深刻體會到軟體工程的重要性,對以後做大的項目積累了一定的經驗。
 由於Eclipse的外掛程式都是自己尋找並安裝的,所以有很大的自由性。介面的設計我採用了Jigloo外掛程式,只需拖拖控制項就可以完成,但是在設計中我犯了個錯誤,手動修改了自動產生的程式碼,結果導致修改介面後出現多處錯誤,手動修改後只要改動介面就又出錯,最後只好全部重做,耽誤了不少時間。
         1月10日:在完成了基本架構和學生維護介面後,從這天開始就涉及到資料庫的操作了。Java串連SQL Server資料庫有兩種方式,一種是安裝微軟提供的JDBC驅動,一種是通過JDBC:ODBC橋。考慮到這僅僅是個傳統型應用程式,就採用了第二種方式,不需要另外安裝驅動了。首先要在系統資料來源管理中添加資料來源,然後用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 串連資料庫。資料庫連接是在Bridge類中完成的,資料庫操作由Manage類實現。先以實現登入功能來測試連接,由於使用者資訊包含在users表中,直接執行"select upassword from users where uname=/'"+ log.getUser() +"/'" ,得到upassword欄位的內容,把它與文本段的內容比較即可,登入成功則啟用維護和查詢菜單。
         1月11日:前天已經把學生表維護的介面做好,這天就來實現其中的功能。實現的過程雖不複雜但比較繁瑣,因為欄位很多。其中遇到了ResultSet遊標不能往回移的情況,經過查閱JDK文檔,發現ResultSet預設屬性是TYPE_FORWARD_ONLY,所以建立串連時把參數設成ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY就解決了,這樣就可以訪問表中任何位置的資料了。
        1月12日:下午停電踢了半天球,晚上抓緊完成學生表的查詢功能。我通過幾個checkBox來產生查詢語句,選中的話對應的字串就為查詢內容,否則為空白,最後把所有字串組合起來,產生查詢語句,執行後把結果放到一個textArea中。這個過程中遇到一個小問題,由於幾個條件查詢時要用"and"串連,由於條件個數是不定的,所以只能在產生的每個字串後面加上"and",這樣組合起來後最後面就多了一個"and",我再用subString()方法把最後的"and"去掉,這樣就成功了。還有一點,由於我的結果輸出是用的組合成字串的方法,這樣顯示時由於字長不同會不對齊,儘管我用了"/t"來自動縮排,但是如果遇到很長的字串,就會比其它行多退一格,似乎沒有什麼好的解決辦法。也許把結果輸出到一個表格裡會比較好,但是表格的大小是固定的,所以必須在查詢完畢後產生,這個方法應該是可行的,但為了趕時間,最終沒能實現它,其他幾個查詢介面也是用了這個有缺陷的文本輸出的方法。這個做好後,技術上已經沒有障礙了,我一口氣把課程表的維護和查詢也都完成了。
        1月13日:最後兩個介面,班級表的查詢和維護。這些基本和前面的一樣,由於我把功能的實現和介面、事件註冊都分離了,所以新做的只要把介面設計好,然後把代碼複製過來,再根據現在的要求把控制項名、欄位名改一下就好了,所以進展很順利,一個小時一個介面,很快就做好了。最後做了個說明對話方塊,大功告成了!

下面是登入後的介面:
 

 

存在問題:
         一個在上面已經說過了,就是查詢結果中的超長文本無法對齊顯示,不過一般不會遇到這種情況,因為需要填很長的文本的機會很少,但這畢竟是一個缺陷。還有,為了去掉欄位中的空格,我用了trim()方法忽略返回結果中的空格,但一旦返回的是null,就會出現null 指標的異常,出現這個矛盾主要還是為了輸出時美觀產生的,如果用JTable應該不會有這種問題。還有就是在刪除記錄時應該有個警告對話方塊,我根據文檔裡的說法做了一下卻沒成功,不知道哪裡出了問題。另外,我想不設定資料來源來串連,即所謂的無源串連,用access倒是可以,這個搞不定。最後,在得到查詢結果時,我用了getString(String columnName)的方法,把每列的內容一個個賦到結果字串裡,但還有一個方法:getString(int columnIndex)即用列號來返回結果,這樣用一個迴圈就可以完成所有賦值。但是我用這種方法就會得到"非法的描述符索引"異常,百思不得其解,上網和別人討論也沒得出結果。這點問題希望各路豪傑能不吝賜教!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.