《數(shù)據(jù)庫(kù)概論》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)_第1頁(yè)
《數(shù)據(jù)庫(kù)概論》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)_第2頁(yè)
《數(shù)據(jù)庫(kù)概論》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)_第3頁(yè)
《數(shù)據(jù)庫(kù)概論》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)_第4頁(yè)
《數(shù)據(jù)庫(kù)概論》課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)系統(tǒng)概論學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū)安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院姓 名專 業(yè)班 級(jí)學(xué) 號(hào)指導(dǎo)教師戴小平分 數(shù)2016年 6月 1 日數(shù)據(jù)庫(kù)系統(tǒng)概論課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告書(shū) 安徽工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 PAGE I摘 要摘要內(nèi)容:本實(shí)驗(yàn)報(bào)告采用了oracle數(shù)據(jù)庫(kù)工具,使用java窗體可視化編程來(lái)執(zhí)行操作。實(shí)現(xiàn)了不同身份的人員對(duì)教師信息、學(xué)生信息以及學(xué)生成績(jī)的不同操作。關(guān)鍵詞:oracle數(shù)據(jù)庫(kù),java編程,sql語(yǔ)句,學(xué)生成績(jī)管理系統(tǒng)。 PAGE i目錄 TOC o 1-3 h z u HYPERLINK l _Toc452921018 摘要內(nèi)容: PAGEREF _Toc452921

2、018 h I HYPERLINK l _Toc452921019 關(guān)鍵詞: PAGEREF _Toc452921019 h I HYPERLINK l _Toc452921020 1 緒 論 PAGEREF _Toc452921020 h 1 HYPERLINK l _Toc452921021 1.1 概述 PAGEREF _Toc452921021 h 1 HYPERLINK l _Toc452921022 1.1.1 問(wèn)題的提出 PAGEREF _Toc452921022 h 1 HYPERLINK l _Toc452921023 1.1.2 本課題的意義 PAGEREF _Toc452

3、921023 h 1 HYPERLINK l _Toc452921024 1.2 開(kāi)發(fā)環(huán)境與工具介紹 PAGEREF _Toc452921024 h 1 HYPERLINK l _Toc452921025 2 系統(tǒng)需求分析與設(shè)計(jì) PAGEREF _Toc452921025 h 2 HYPERLINK l _Toc452921026 2.1 用戶需求分析 PAGEREF _Toc452921026 h 2 HYPERLINK l _Toc452921027 2.1.1 用戶需求 PAGEREF _Toc452921027 h 2 HYPERLINK l _Toc452921028 2.1.2 系

4、統(tǒng)功能需求 PAGEREF _Toc452921028 h 2 HYPERLINK l _Toc452921029 2.2 功能模塊圖及分模塊功能描述 PAGEREF _Toc452921029 h 2 HYPERLINK l _Toc452921030 2.2.1 系統(tǒng)的功能模塊圖 PAGEREF _Toc452921030 h 2 HYPERLINK l _Toc452921031 2.2.2 系統(tǒng)功能模塊簡(jiǎn)介 PAGEREF _Toc452921031 h 2 HYPERLINK l _Toc452921032 2.3 數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc452921032 h 3 HY

5、PERLINK l _Toc452921033 2.3.1 系統(tǒng)E-R圖 PAGEREF _Toc452921033 h 3 HYPERLINK l _Toc452921034 2.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc452921034 h 4 HYPERLINK l _Toc452921035 管理員表 PAGEREF _Toc452921035 h 5 HYPERLINK l _Toc452921036 班級(jí)表 PAGEREF _Toc452921036 h 6 HYPERLINK l _Toc452921037 3 系統(tǒng)實(shí)施 PAGEREF _Toc452921037 h

6、 7 HYPERLINK l _Toc452921038 3.1 建立數(shù)據(jù)庫(kù) PAGEREF _Toc452921038 h 7 HYPERLINK l _Toc452921039 3.2 數(shù)據(jù)庫(kù)連接 PAGEREF _Toc452921039 h 10 HYPERLINK l _Toc452921040 3.3 主要模塊實(shí)施 PAGEREF _Toc452921040 h 10 HYPERLINK l _Toc452921041 3.3.1 登錄模塊的開(kāi)發(fā) PAGEREF _Toc452921041 h 11 HYPERLINK l _Toc452921042 3.3.2 管理員工具模塊 P

7、AGEREF _Toc452921042 h 11 HYPERLINK l _Toc452921043 3.3.3 教師工具模塊 PAGEREF _Toc452921043 h 12 HYPERLINK l _Toc452921044 3.3.4 學(xué)生工具模塊 PAGEREF _Toc452921044 h 12 HYPERLINK l _Toc452921045 3.4 系統(tǒng)測(cè)試 PAGEREF _Toc452921045 h 12 HYPERLINK l _Toc452921046 3.4.1 軟件測(cè)試的對(duì)象 PAGEREF _Toc452921046 h 12 HYPERLINK l _

8、Toc452921047 3.4.2 軟件測(cè)試的結(jié)果 PAGEREF _Toc452921047 h 13 HYPERLINK l _Toc452921048 4 系統(tǒng)說(shuō)明 PAGEREF _Toc452921048 h 18 HYPERLINK l _Toc452921049 4.1 開(kāi)發(fā)環(huán)境 PAGEREF _Toc452921049 h 18 HYPERLINK l _Toc452921050 總 結(jié) PAGEREF _Toc452921050 h 19 HYPERLINK l _Toc452921051 參考文獻(xiàn) PAGEREF _Toc452921051 h 20 HYPERLINK

9、 l _Toc452921052 附錄:部分源代碼 PAGEREF _Toc452921052 h 21 PAGE 291 緒 論1.1 概述1.1.1 問(wèn)題的提出 在學(xué)生成績(jī)管理中,管理員、教師、學(xué)生對(duì)成績(jī)要有不同的管理權(quán)限,如何構(gòu)建數(shù)據(jù)庫(kù)、如何解決數(shù)據(jù)庫(kù)之間的關(guān)系、如何通過(guò)軟件來(lái)實(shí)現(xiàn)不同身份給予不同的權(quán)限是本課程設(shè)計(jì)的主要問(wèn)題。1.1.2 本課題的意義 通過(guò)這次課程設(shè)計(jì),管理員能夠?qū)崿F(xiàn)對(duì)學(xué)生信息、教師信息的管理,教師能夠?qū)W(xué)生的成績(jī),學(xué)生選課信息進(jìn)行操作和管理,同時(shí)學(xué)生能夠?qū)Τ煽?jī)進(jìn)行查詢,對(duì)課程進(jìn)行選擇等功能。1.2 開(kāi)發(fā)環(huán)境與工具介紹 數(shù)據(jù)庫(kù)使用oralce數(shù)據(jù)庫(kù),編程工具使用java窗

10、體可視化編程。2 系統(tǒng)需求分析與設(shè)計(jì)2.1 用戶需求分析2.1.1 用戶需求不同的用戶,根據(jù)身份的不同,可對(duì)不同的信息進(jìn)行操作。2.1.2 系統(tǒng)功能需求管理員:對(duì)學(xué)生信息,教師信息的增、刪、改、查功能,以及對(duì)課程的增、刪、改、查,對(duì)學(xué)生選課信息的管理,但是對(duì)于學(xué)生成績(jī)不能夠進(jìn)行操作教師:對(duì)學(xué)生成績(jī)的增、刪、改、查功能。學(xué)生:對(duì)成績(jī)的查詢、對(duì)課程的選擇功能。2.2 功能模塊圖及分模塊功能描述2.2.1 系統(tǒng)的功能模塊圖2.2.2 系統(tǒng)功能模塊簡(jiǎn)介該系統(tǒng)是對(duì)不同的身份登陸,給予不同的功能權(quán)限,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)信息的管理。2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)2.3.1 系統(tǒng)E-R圖 2.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 學(xué)生

11、信息表數(shù)據(jù)庫(kù)表/視圖ID:stu_table 數(shù)據(jù)庫(kù)表/視圖名稱:學(xué)生信息表 序號(hào)字段 ID字段名稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1Stuid學(xué)號(hào)Varchar2()10Pk記錄學(xué)生的學(xué)號(hào) 2Stuname姓名Varchar2()10記錄學(xué)生名稱3Stusex 性別Varchar2()2男 女記錄學(xué)生性別4Stukey密碼Varchar2()16長(zhǎng)度在6-16記錄學(xué)生登陸密碼5Clid老師編號(hào)Varchar2()10Fk班級(jí)編號(hào) 外鍵教師信息表數(shù)據(jù)庫(kù)表/視圖ID:tea_table 數(shù)據(jù)庫(kù)表/視圖名稱:教師信息表 序號(hào)字段 ID字 段 名 稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1

12、Teaid教師編號(hào)Varchar2()10Pk記錄教師編號(hào) 主鍵2Teaname教師姓名Varchar2()10記錄教師姓名3Teasex性別Varchar2()2男 或 女記錄教師性別4Teakey教師登陸密碼Varchar2()16長(zhǎng)度在6-16記錄老師登陸密碼課程表數(shù)據(jù)庫(kù)表/視圖ID:co_table 數(shù)據(jù)庫(kù)表/視圖名稱:課程表 序號(hào)字段 ID字 段 名 稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1Coid課程編號(hào)Varchar210Pk記錄課程編號(hào)2Coname課程名稱Varchar210記錄課程名稱3Cotype課程類型Varchar216必修課 公共選修課 專業(yè)選修課記錄課程類型4

13、Cocredit課程學(xué)分Number記錄課程學(xué)分5Teaid教師編號(hào)Varchar210Fk記錄該課程的教師信息管理員表數(shù)據(jù)庫(kù)表/視圖ID: ad_table 數(shù)據(jù)庫(kù)表/視圖名稱:管理員表 序號(hào)字段 ID字 段 名 稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1Adid管理員編號(hào)Varchar210Pk記錄管理員編號(hào) 主鍵2Adname管理員姓名Varchar210記錄姓名3Adkey管理員密碼Varchar216長(zhǎng)度在6-16記錄管理員密碼成績(jī)表數(shù)據(jù)庫(kù)表/視圖ID:gra_table 數(shù)據(jù)庫(kù)表/視圖名稱:成績(jī)表 序號(hào)字段 ID字 段 名 稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1Stuid學(xué)

14、號(hào)Varchar210 Pk學(xué)號(hào) 主鍵 外鍵2Coid課程號(hào)Varcahr210Pk課程號(hào) 主鍵 外鍵3Gra成績(jī)Number學(xué)生成績(jī)4Pass是否通過(guò)Varchar25Yes 或 no 記錄該課程是否通過(guò)班級(jí)表數(shù)據(jù)庫(kù)表/視圖ID:cl_table 數(shù)據(jù)庫(kù)表/視圖名稱:班級(jí)表 序號(hào)字段 ID字 段 名 稱類 型長(zhǎng) 度PK / FK取值范圍說(shuō) 明1Clid班級(jí)編號(hào)Varcahr210Pk班級(jí)的唯一編號(hào) 2Clname班級(jí)名稱Varchar210班級(jí)名稱3Teaid教師編號(hào)Varchar210Fk班主任,管理班級(jí) 3 系統(tǒng)實(shí)施3.1 建立數(shù)據(jù)庫(kù) 創(chuàng)建數(shù)據(jù)庫(kù)表的SQL語(yǔ)句管理員表學(xué)生表班級(jí)表教師表課

15、程表成績(jī)表3.2 數(shù)據(jù)庫(kù)連接 Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;try/第一步,加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),不同的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序是不一樣的Class.forName(oracle.jdbc.driver.OracleDriver);/第二步:得到數(shù)據(jù)庫(kù)連接String dbUrl1=jdbc:oracle:thin:127.0.0.1:1521:whe;/設(shè)置包連接路徑String username=scott;/設(shè)置數(shù)據(jù)庫(kù)用戶名稱String password=tiger;/廢黜數(shù)據(jù)庫(kù)用戶密碼/通過(guò)連接

16、字段進(jìn)行連接conn=DriverManager.getConnection(dbUrl1,username,password);catch(Exception e)finallytry /關(guān)閉各連接字段if(null!=conn)conn.close();if(null!=pstmt)pstmt.close();if(null!=rs)rs.close(); catch (SQLException e2) / TODO: handle exception 3.3 主要模塊實(shí)施3.3.1 登錄模塊的開(kāi)發(fā) 登陸界面:登陸界面可以選擇不同的身份進(jìn)行登陸,用戶名為每個(gè)實(shí)體的主鍵,默認(rèn)密碼與用戶名相同

17、。當(dāng)選擇不同的身份時(shí),會(huì)從不同的表中查詢密碼,如果不符合,會(huì)報(bào)錯(cuò),正確則進(jìn)入相應(yīng)的工具界面。3.3.2 管理員工具模塊 管理員的操作主要是對(duì)學(xué)生與教師的信息的增、刪、改、查,以及對(duì)課程信息的管理。但不能夠?qū)W(xué)生成績(jī)進(jìn)行干預(yù),也不能對(duì)學(xué)生成績(jī)進(jìn)行查詢。3.3.3 教師工具模塊教師工具主要是對(duì)學(xué)生成績(jī)進(jìn)行錄入、查詢、修改和刪除。3.3.4 學(xué)生工具模塊學(xué)生工具只要是去學(xué)生成績(jī)進(jìn)行查詢和對(duì)課程的選擇。3.4 系統(tǒng)測(cè)試3.4.1 軟件測(cè)試的對(duì)象根據(jù)不同的登陸身份,來(lái)對(duì)各個(gè)表格的數(shù)據(jù)進(jìn)行增、刪、改、查等操作3.4.2 軟件測(cè)試的結(jié)果學(xué)生模塊學(xué)生成績(jī)查詢所有成績(jī)查詢查詢未通過(guò)成績(jī)學(xué)生選課模塊選課時(shí)會(huì)將課程

18、列在下述的列表中,選擇時(shí)可根據(jù)表格內(nèi)的課程號(hào)來(lái)進(jìn)行選擇。教師模塊錄入成績(jī)成績(jī)的錄入是通過(guò)學(xué)號(hào)以及課程號(hào)來(lái)進(jìn)行定位,成績(jī)可以為空,可以后期修改。查詢成績(jī)成績(jī)查詢可以通過(guò)學(xué)號(hào),課程號(hào),班級(jí)來(lái)定位信息查詢。不同的查詢方式只需要輸入不同的信息即可 刪除成績(jī)成績(jī)的刪除也需要通過(guò)學(xué)號(hào)與課程號(hào)來(lái)進(jìn)行定位刪除,同時(shí),如果成績(jī)不存在,會(huì)報(bào)錯(cuò)。修改成績(jī)成績(jī)修改需要學(xué)號(hào)以及課程號(hào)來(lái)進(jìn)行定位。此處有一個(gè)bug ,在更新的時(shí)候,如果成績(jī)小于60的話,那么pass 不會(huì)更改,有待修正。管理員模塊學(xué)生教師信息管理通過(guò)學(xué)號(hào)或者工號(hào)來(lái)對(duì)學(xué)生和教師的信息進(jìn)行增、刪、改、查。課程信息管理通過(guò)信息的寫(xiě)入,來(lái)進(jìn)行課程信息的增、刪、改、

19、查。4 系統(tǒng)說(shuō)明4.1 開(kāi)發(fā)環(huán)境本系統(tǒng)是在java語(yǔ)言進(jìn)行開(kāi)發(fā),使用oracle數(shù)據(jù)庫(kù)來(lái)進(jìn)行數(shù)據(jù)管理,因此電腦要預(yù)裝jdk 來(lái)運(yùn)行java程序,同時(shí)也要安裝oracle 來(lái)管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。總 結(jié)該課程設(shè)計(jì)前后共耗時(shí)四周時(shí)間,包括對(duì)java界面設(shè)計(jì)的學(xué)習(xí),java連接數(shù)據(jù)庫(kù)和對(duì)oracle的復(fù)習(xí)。全部工作均自主完成,參考文獻(xiàn)見(jiàn)附錄。自我認(rèn)為工作進(jìn)展不是很順利,由于對(duì)于java界面設(shè)計(jì)的不熟悉,很多插件都不是很熟悉的使用,因此界面方面做的很單調(diào)。同時(shí),對(duì)界面設(shè)計(jì)的過(guò)程中,沒(méi)有整體的把握,往往設(shè)計(jì)到一半,另一個(gè)想法出來(lái),又要推翻重新來(lái)過(guò),因此消耗了很多的時(shí)間。對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)起初做的很不全面,做到

20、后期還要回來(lái)修改數(shù)據(jù)庫(kù),因此耽誤了更多的時(shí)間。同時(shí),對(duì)用戶需求的分析也沒(méi)做的很好,對(duì)用戶的功能方面做了很多沒(méi)必要的功能,后期又進(jìn)行了一部分修改。通過(guò)這次課程設(shè)計(jì),我學(xué)會(huì)了很多。最大的收獲就是使我全面的接觸了項(xiàng)目設(shè)計(jì)的總體步驟,讓我認(rèn)識(shí)到了每一個(gè)步驟的重要性。無(wú)論是前期的需求分析還是后期的測(cè)試程序,都是相互關(guān)聯(lián)的,需求分析沒(méi)有做好,程序編寫(xiě)時(shí)就會(huì)沒(méi)有目標(biāo),沒(méi)有明確的功能需求。測(cè)試程序沒(méi)有做好,就會(huì)存在很多bug,對(duì)需求的實(shí)現(xiàn)也有很大的影響。這次課程設(shè)計(jì)中,對(duì)于用戶的需求基本完善,但沒(méi)有完成的問(wèn)題還有很多。其中最大的問(wèn)題就是該程序是單機(jī)版的,如果能夠通過(guò)網(wǎng)絡(luò)將此程序聯(lián)網(wǎng)運(yùn)行,那就更好了。最后,我要

21、感謝戴老師對(duì)我課程設(shè)計(jì)的指導(dǎo),修正。參考文獻(xiàn)1數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用 主編:戴小平2Java大學(xué)實(shí)用教程 電子工業(yè)大學(xué)出版社附錄:部分源代碼登陸界面源碼:import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.colorchooser.ColorChooserComponentFactory;import javax.swing.

22、JLabel;import javax.swing.JOptionPane;import javax.swing.SwingConstants;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JComboBox;import javax.swing.DefaultComboBoxModel;import javax.swing.JButton;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;

23、import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.text.Normalizer.Form;import java.awt.Font;public class Login_Frame extends JFrame private JPanel contentPane;private JTextField userNameText;p

24、rivate JPasswordField userPasswordField;private int choose = 1;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try Login_Frame frame = new Login_Frame();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* *

25、Create the frame. */public Login_Frame() setTitle(u767Bu9646);try setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(contentPane);contentPane.setLayout(null);JLabel userNameLabel = n

26、ew JLabel(u7528u6237uFF1A);userNameLabel.setHorizontalAlignment(SwingConstants.CENTER);userNameLabel.setBounds(10, 34, 54, 23);contentPane.add(userNameLabel);JLabel userKeyLabel = new JLabel(u5BC6u7801uFF1A);userKeyLabel.setHorizontalAlignment(SwingConstants.CENTER);userKeyLabel.setBounds(10, 91, 54

27、, 23);contentPane.add(userKeyLabel);userNameText = new JTextField();userNameText.setBounds(87, 35, 207, 21);contentPane.add(userNameText);userNameText.setColumns(10);userPasswordField = new JPasswordField();userPasswordField.setToolTipText();userPasswordField.setHorizontalAlignment(SwingConstants.LE

28、FT);userPasswordField.setBounds(87, 92, 207, 21);contentPane.add(userPasswordField);JComboBox userTypeBox = new JComboBox();userTypeBox.setModel(new DefaultComboBoxModel(new String u7BA1u7406u5458, u6559u5E08, u5B66u751F );userTypeBox.setBounds(87, 149, 139, 21);contentPane.add(userTypeBox);JLabel u

29、serTypeLabel = new JLabel(u7528u6237u7C7Bu578BuFF1A);userTypeLabel.setHorizontalAlignment(SwingConstants.CENTER);userTypeLabel.setBounds(10, 148, 75, 23);contentPane.add(userTypeLabel);JButton loginButton = new JButton(u767Bu9646);loginButton.addMouseListener(new MouseAdapter() Overridepublic void m

30、ouseClicked(MouseEvent e) setChoose(userTypeBox.getSelectedIndex();if (userTypeBox.getSelectedIndex() = 0) / 所選 的是管理 員賬戶 /雖然每一種選擇都要連一次數(shù)據(jù)庫(kù),但是也是為了避免因?yàn)闃?biāo)簽的位置不同,而出現(xiàn)數(shù)據(jù)庫(kù)運(yùn)行錯(cuò)誤問(wèn)題try Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;Class.forName(oracle.jdbc.driver.OracleDriver);String

31、dbUrl1 = jdbc:oracle:thin:localhost:1521:whe;String username = scott;String password = tiger;conn = DriverManager.getConnection(dbUrl1, username, password);String userName = userNameText.getText();String sql = select adkey from ad_table where adid = + userName;boolean bl = false;try pstmt = conn.pre

32、pareStatement(sql);rs = pstmt.executeQuery();while (rs.next() String key = rs.getString(adkey);/如果把三種情況在這個(gè)地方判斷的話,最好的是用index來(lái)索引,但是很容易出錯(cuò)String keyin = String.valueOf(userPasswordField.getPassword();/密碼獲取錯(cuò)誤if(key.equals(keyin)bl = true;if(bl)ad_Tool_Frame frame = new ad_Tool_Frame();frame.setVisible(tr

33、ue);Login_Frame.this.dispose();elseString str = 用戶名或密碼輸入錯(cuò)誤,請(qǐng)核對(duì)后重新輸入!;JOptionPane.showMessageDialog(null, str, 登陸失敗, JOptionPane.ERROR_MESSAGE); catch (SQLException e1) / TODO 自動(dòng)生成的 catch 塊 catch (Exception e2) JOptionPane.showMessageDialog(null, 連接登陸失敗, 連接登陸失敗, JOptionPane.ERROR_MESSAGE);/所選的是教師賬戶el

34、se if(userTypeBox.getSelectedIndex() = 1)try Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;Class.forName(oracle.jdbc.driver.OracleDriver);String dbUrl1 = jdbc:oracle:thin:localhost:1521:whe;String username = scott;String password = tiger;conn = DriverManager.getConnection

35、(dbUrl1, username, password);String userName = userNameText.getText();String sql = select teakey from tea_table where teaid = + userName;boolean bl = false;try pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();while (rs.next() String key = rs.getString(teakey);String keyin = String.valueO

36、f(userPasswordField.getPassword();/密碼獲取錯(cuò)誤if(key.equals(keyin)bl = true;if(bl)tea_Frame frame = new tea_Frame();frame.setVisible(true);Login_Frame.this.dispose();elseString str = 用戶名或密碼輸入錯(cuò)誤,請(qǐng)核對(duì)后重新輸入!;JOptionPane.showMessageDialog(null, str, 登陸失敗, JOptionPane.ERROR_MESSAGE); catch (SQLException e1) /

37、TODO 自動(dòng)生成的 catch 塊 catch (Exception e2) JOptionPane.showMessageDialog(null, 連接登陸失敗, 連接登陸失敗, JOptionPane.ERROR_MESSAGE);else/所選的是學(xué)生賬戶try Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;Class.forName(oracle.jdbc.driver.OracleDriver);String dbUrl1 = jdbc:oracle:thin:localhost:

38、1521:whe;String username = scott;String password = tiger;conn = DriverManager.getConnection(dbUrl1, username, password);String userName = userNameText.getText();String sql = select stukey from stu_table where stuid = + userName;boolean bl = false;try pstmt = conn.prepareStatement(sql);rs = pstmt.exe

39、cuteQuery();while (rs.next() String key = rs.getString(stukey);String keyin = String.valueOf(userPasswordField.getPassword();/密碼獲取錯(cuò)誤if(key.equals(keyin)bl = true;break;if(bl)stu_Tools_Frame frame = new stu_Tools_Frame();frame.setVisible(true);Login_Frame.this.dispose();elseString str = 用戶名或密碼輸入錯(cuò)誤,請(qǐng)核

40、對(duì)后重新輸入!;JOptionPane.showMessageDialog(null, str, 登陸失敗, JOptionPane.ERROR_MESSAGE); catch (SQLException e1) / TODO 自動(dòng)生成的 catch 塊 catch (Exception e2) JOptionPane.showMessageDialog(null, 連接登陸失敗, 連接登陸失敗, JOptionPane.ERROR_MESSAGE););loginButton.setBounds(69, 204, 93, 23);contentPane.add(loginButton);JB

41、utton cancleButton = new JButton(u53D6u6D88);cancleButton.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent arg0) Login_Frame.this.dispose(););cancleButton.setBounds(259, 204, 93, 23);contentPane.add(cancleButton);JLabel meLable = new JLabel(u5B66u751Fu548Cu6559u5E08u76

42、84u9ED8u8BA4u5BC6u7801u4E3Au5B66u5DE5u53F7);meLable.setFont(new Font(宋體, Font.PLAIN, 11);meLable.setBounds(87, 123, 207, 15);contentPane.add(meLable); catch (Exception e) e.printStackTrace();public int getChoose() return choose;public void setChoose(int x) choose = x;信息添加源碼:public void mouseClicked(

43、MouseEvent e) if (typeBox.getSelectedIndex() = 1) /添加的學(xué)生信息String id = stuIdTextField.getText();String name = nameTextField.getText();String sex = sexBox.getSelectedItem().toString();String cl = clTextField.getText();if (id.equals() | name.equals() | cl.equals() JOptionPane.showMessageDialog(null, 你所

44、輸入的信息不完整,請(qǐng)輸入完整信息后添加!, 信息缺失,JOptionPane.ERROR_MESSAGE); else try Connection conn = null;PreparedStatement pstmt = null, pstmt2 = null;ResultSet rs = null;Class.forName(oracle.jdbc.driver.OracleDriver);String dbUrl1 = jdbc:oracle:thin:localhost:1521:whe;String username = scott;String password = tiger;

45、conn = DriverManager.getConnection(dbUrl1, username, password);String sql = select stuid from stu_table;pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();boolean bl = false;while (rs.next() String oldid = rs.getString(stuid);if (oldid.equals(id) bl = true;if (bl) JOptionPane.showMessageDialog(null, 你所輸入的學(xué)號(hào)已存在,請(qǐng)重新輸入, 學(xué)號(hào)重復(fù),JOptionPane.ERROR_MESSAGE); else sql = insert into stu_table values (?, ?, ?, ?, ?);pstmt2 = conn.prepareStatement(sql);pst

溫馨提示

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

評(píng)論

0/150

提交評(píng)論