數(shù)據(jù)庫(kù)課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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ù)原理課程設(shè)計(jì)報(bào)告題目:學(xué)生信息管理系統(tǒng)學(xué)生姓名:穆嶺(徐清鋒、冉麗華)學(xué)號(hào):0908060070班級(jí):計(jì)科092院系:計(jì)算機(jī)科學(xué)與信息學(xué)院專業(yè)年級(jí):計(jì)算機(jī)科學(xué)與技術(shù) 2009級(jí)2011 年 12月 22 日一、需求分析需包含內(nèi)容為:(1)問(wèn)題描述:學(xué)生信息的管理是學(xué)校很重要的一項(xiàng)工作,而人工管理學(xué) 生信息的話,無(wú)疑是一個(gè)很費(fèi)時(shí)費(fèi)力的事情,而且效率不高,容易出錯(cuò),往往是 學(xué)校進(jìn)行學(xué)生工作的一個(gè)瓶頸問(wèn)題,有一個(gè)學(xué)生信息管理的系統(tǒng)就能夠幫助學(xué)校 更好完成學(xué)生信息管理的工作,降低管理成本。所以我們組編寫了一個(gè)學(xué)生信息 管理系統(tǒng),使其在學(xué)生管理工作中發(fā)揮更大的作用。(2)系統(tǒng)功能描述:本系統(tǒng)是一個(gè)

2、學(xué)生信息管理系統(tǒng),主要管理學(xué)生的基本信息,課程信息,以 及學(xué)生選課成績(jī)信息等,登錄的模塊有兩種登錄類型,分別是管理員登錄和學(xué)生 登錄,如果是管理員登錄的話,進(jìn)入管理員界面,要求管理員界面中可以信息的 學(xué)生基本信息、課程基本信息和學(xué)生選課成績(jī)信息的管理設(shè)置;還有信息查詢, 在這塊兒中可以進(jìn)行學(xué)生基本信息的查詢, 課程信息的查詢,以及選課成績(jī)信息 的查詢;除此之外,要求設(shè)一個(gè)用戶維護(hù)模塊,在這個(gè)模塊中管理員可以添加管 理員用戶或者是學(xué)生用戶,可以修改密碼,并且能夠切換用戶登錄;接著是幫助, 幫助中顯示系統(tǒng)的版本;最后要求有一個(gè)推出系統(tǒng)按鈕。如果是學(xué)生登錄,那么 學(xué)生可以進(jìn)行學(xué)生信息的維護(hù),可以進(jìn)行

3、登錄密碼的修改,基本信息的修改,以 及切換用戶登錄;可以進(jìn)行學(xué)生基本信息的查詢,學(xué)生課程學(xué)習(xí)的查詢,學(xué)生選 課成績(jī)信息的查詢。接著是幫助,幫助中顯示系統(tǒng)的版本;最后要求有一個(gè)推出 系統(tǒng)按鈕。其詳細(xì)的操作框架流程在下面的圖中可以見(jiàn)到。操作流程框圖:曲甦信息_ 產(chǎn)瞬聲7登嘩蘭星榨息I廠、趕 細(xì)貞J翅躺魁罠/a甑縫 i粵礙認(rèn)菅腔翅錄廠I郵崩息、*認(rèn)融 J 存儲(chǔ)的數(shù)據(jù)信息:User表(用戶名,密碼,用戶類型標(biāo)識(shí)),用于存儲(chǔ)登錄用戶信息;Student表(學(xué)號(hào),姓名,性別,出生日期,電話, QQ號(hào),專業(yè),班級(jí),家庭地 址),用于存儲(chǔ)學(xué)生基本信息;Course表(課程號(hào),課程名,先行課,學(xué)分,教師姓名),

4、用于存儲(chǔ)課程基本信息; SC表(學(xué)號(hào),課程號(hào),成績(jī),績(jī)點(diǎn)),用于存儲(chǔ)學(xué)生選課成績(jī)信息。(3)有何安全性與完整性方面的要求。安全性:如果是管理員登錄系統(tǒng):可以進(jìn)行管理設(shè)置,包括(設(shè)置學(xué)生的基 本信息、設(shè)置課程信息、設(shè)置學(xué)生成績(jī)信息),設(shè)置各種信息的時(shí)候有添加,刪 除和修改等相應(yīng)功能,然后是信息查詢,包括(查詢學(xué)生基本信息,查詢課程信 息、查詢學(xué)生成績(jī)信息),用戶的維護(hù),包括(添加用戶,修改用戶密碼,切換 用戶登錄),幫助,退出系統(tǒng)。如果是 學(xué)生登錄系統(tǒng):可以修改自己的基本信息, 修改個(gè)人登錄密碼,切換用戶登錄,同樣可進(jìn)行信息查詢,包括(查詢學(xué)生基本 信息,查詢課程信息、查詢學(xué)生成績(jī)信息),查看幫

5、助,退出系統(tǒng)。完整性:主要是在刪除學(xué)生信息和課程信息的時(shí)候如果在選課信息中存在選 課成績(jī)信息的話,那么就不能直接進(jìn)行相應(yīng)信息的刪除, 在開發(fā)中要給出相應(yīng)的 信息提示,在進(jìn)行各種添加、和更新操作之前也有進(jìn)行相應(yīng)的判斷, 如果原來(lái)的 信息中已經(jīng)有了所要添加的該條信息, 怎不能添添加,并給出相應(yīng)的提示,如果 不存在所要更新的信息的時(shí)候也不能進(jìn)行更新, 并給出相應(yīng)的提示。具體的完整 性約束在編程中具體給出。、概念結(jié)構(gòu)設(shè)計(jì)I Cent ifi er l QiSI.0Cpi ) Variabledura iters(20)sx-aneVar i ablechirazterE(.30)StKVariaMec

6、hiraitftsrEGO)birllttlVu-iaalechurai:tTE磯Variablechira:ter5sceptVariablechirazterE)cl u sVar i ahlechil*.: tersCM)Variablechira.:terECEO)S txdiTlt畫出系統(tǒng)整體的E-R模型;并對(duì)模型中所出現(xiàn)的實(shí)體及屬性等信息加以說(shuō)明概念模型Cjio電 cLar機(jī)亡t吐占 12DJdjmHie41 1 4.LJL-C 吐皿 鈕 1讓創(chuàng) GO) G)Vwi thl 電 cltflrirtiirs GO) creditFloatV*ri ible ctaracterE (2

7、0)物理模型三、邏輯結(jié)構(gòu)設(shè)計(jì)(1) 模式設(shè)計(jì):按系統(tǒng)整體 E-R模型,寫出關(guān)系模式;并利用數(shù)據(jù)字典加 以描述。(如每個(gè)關(guān)系模式有何屬性、屬性的類型、屬性值的長(zhǎng)度、是否可取空 值、是否為主碼、有何約束條件等信息);本系統(tǒng)的設(shè)計(jì)中主要涉及到四個(gè)表, 分別是User表、Student表,Course表, SC表,在這四個(gè)表中,User表用于存儲(chǔ)用戶信息,Stude nt表存儲(chǔ)學(xué)生信息表, Course表存儲(chǔ)課程信息,SC表存儲(chǔ)學(xué)生選課的成績(jī)信息。這四個(gè)表的結(jié)構(gòu)如下: User 表屬性名存儲(chǔ)代碼類型長(zhǎng)度是否可為空主鍵否備注用戶名un ameVARCHAFI 20否是用戶登錄名密碼用戶類型標(biāo)識(shí)upass

8、 bsVARCHAFINTI 30否否用戶登錄密碼 用于標(biāo)識(shí)是管理員 還是學(xué)生Student 表屬性名存儲(chǔ)代碼類型長(zhǎng)度是否可為空主鍵否備注學(xué)號(hào) 姓名sno sn ameVARCHAVARCHAIR 20R 20否否是學(xué)生學(xué)號(hào)學(xué)生姓名性別 出生日期sex birthVARCHAIDATER 2否性別出生日期電話telVARCHAIR 20聯(lián)系電話QC號(hào) 專業(yè)qq sdeptVARCHAIVARCHAR 20R 20否QC號(hào)碼 學(xué)生所在專業(yè)班級(jí)classVARCHAR 20否所在班級(jí)家庭地址addressVARCHAIR 50學(xué)生家庭地址Course 表屬性名存儲(chǔ)代碼類型長(zhǎng)度是否可為空主鍵否|備注

9、課程號(hào)enoVARCHAIR 20否是課程編號(hào)課程名 先行課cn ame epnoVARCHAIVARCHAIR 20R 20否課程名 先行課程學(xué)分creditFLOAT否學(xué)分教師姓名tn ameVARCHAIR 20否教師姓名SC表屬性名存儲(chǔ)代碼類型長(zhǎng)度是否可為空主鍵否|備注學(xué)號(hào)snoVARCHaR 20否是學(xué)號(hào)課程號(hào)enoVARCHAR 20否是課程編號(hào)成績(jī) 績(jī)點(diǎn)grade poi ntFLOATFLOAT課程成績(jī) 課程績(jī)點(diǎn)(2) 子模式設(shè)計(jì):即針對(duì)自己的設(shè)計(jì)模塊的應(yīng)用需定義什么樣的視圖表結(jié)構(gòu);并利用數(shù)據(jù)字典加以描述。由于在查詢學(xué)生成績(jī)信息的時(shí)候要查詢學(xué)生學(xué)號(hào)、姓名、課程號(hào)、課程名、 學(xué)分

10、、成績(jī)、績(jī)點(diǎn)、聯(lián)系電話,這就需要涉及到三個(gè)表的連接,為了查詢的方便, 所以在進(jìn)行設(shè)計(jì)的時(shí)候創(chuàng)建了一個(gè) Stu_Cou_SC視圖表,表結(jié)構(gòu)為Stu_Cou_SC視 圖(學(xué)號(hào),姓名,課程號(hào),課程名,學(xué)分,成績(jī),績(jī)點(diǎn)魚系電話)Stu_Cou_SC屬性名存儲(chǔ)代碼類型長(zhǎng)度是否可為空主鍵否備注學(xué)號(hào) 姓名sno sn ameVARCHAVARCHAR 20R 20否否是學(xué)生學(xué)號(hào)學(xué)生姓名課程號(hào)cnoVARCHAR 20否是課程編號(hào)課程名cn ameVARCHAR 20否課程名學(xué)分creditFLOAT學(xué)分成績(jī) 績(jī)點(diǎn)grade poi ntFLOATFLOAT成績(jī) 績(jī)點(diǎn)聯(lián)系電話telVARCHAR 20聯(lián)系電話

11、(3)畫出系統(tǒng)功能模塊圖,并對(duì)各功能模塊進(jìn)行簡(jiǎn)單介紹在登錄模塊中,設(shè)置了兩種登錄類型,一種是管理員登錄,一種是學(xué)生登錄。,信息維護(hù)信扈查飼,廠一4竽土登錄 用廣登錄幫助尸O退出;O/管理設(shè)置,JW息查詢営理員登錄用戶維護(hù)k鄢助PI退岀這兩種登錄有著不同的使用權(quán)限。管理員登錄系統(tǒng)可以進(jìn)行管理設(shè)置,信息 查詢和用戶維護(hù)等操作,學(xué)生登錄系統(tǒng)可以進(jìn)行信息維護(hù)和信息查詢等。設(shè)貴學(xué)生信息更新尋生星本信息刪祿學(xué)生基本佶惠殊加課程信息、 刪瞎慄程信息話加咸鏡佶息J*V刪除嵌強(qiáng)信息在管理設(shè)置模塊中,用戶可以進(jìn)行學(xué)生信息的設(shè)置、課程信息設(shè)置、選課成績(jī)信息的設(shè)置,在各個(gè)信息的設(shè)置中都可以進(jìn)行添加、 更新和刪除操作。

12、信亀査詢:酋洞磴蛭時(shí)舄在信息查詢模塊中,用戶可以進(jìn)行學(xué)生基本信息查詢,課程信息查詢以及學(xué)生選課成績(jī)信息的查詢。在各個(gè)查詢中又設(shè)置有精確查詢和模糊查詢,使其查詢更智能化。茹加管理員由戶用戶維護(hù)藩加寧生用戶/幅改密碼1切換舟戶登錄幫助黃于退出X.-逼岀扇級(jí)在用戶維護(hù)模塊中,可以進(jìn)行添加用戶,修改用戶登錄密碼,切換用戶登錄功能。 修改逾碼T腫改個(gè)人甚本信息信息維護(hù)切換登錄用戶_?、在學(xué)生登錄后的信息維護(hù)模塊中,學(xué)生統(tǒng)一可以修改登錄密碼,修改個(gè)人基本信息,和切換用戶登錄四、數(shù)據(jù)庫(kù)的物理設(shè)計(jì)在本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)階段,我們?yōu)槠浣⒘讼旅娴娜齻€(gè)索引字段,分別是基于Stude nt表建立的Stus no以sn

13、o為升序索引,基于 Course表建立的Coucno以 eno為升序索引,和基于SCS建立的SCn以sno為升序,以cno為降序的索引。對(duì) 應(yīng)的T-SQI語(yǔ)句如下:/ * 創(chuàng)建索引字段 */DROP INDEX Student . Stusno ;CREATE INDEX Stusno ON Student ( sno ASC);DROP INDEX Course . Coucno ;CREATE INDEX Coucno ON Course ( cno ASC);DROP INDEX SC. SCno;CREATE INDEX SCno ON SC( sno ASC, cno DESC);五

14、、數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)及運(yùn)行(1) 數(shù)據(jù)庫(kù)的創(chuàng)建T-SQL語(yǔ)句:CREATE DATABASE SIMS;(2) 數(shù)據(jù)表的創(chuàng)建T-SQL語(yǔ)句:/* 用戶表 */DROP TABLE User ;CREATE TABLE User (uname VARCHAR( 20) NOT NULL,upass VARCHAR( 30) NOT NULL,bs INTNOT NULL);/* 學(xué)生表 */DROP TABLE Student ;CREATE TABLE Student (snoVARCHAR( 20)PRIMARY KEY,snameVARCHAR( 20)NOT NULL,sexVARCHAR(

15、 2)NOT NULL,birthDATE,telVARCHAR( 20),qqVARCHAR( 20),sdeptVARCHAR( 20)NOT NULL,classVARCHAR( 20)NOT NULL,addressVARCHAR( 50);/* 課程表 */DROP TABLE Course ;CREATE TABLE Course (cnoVARCHAR( 20)PRIMARY KEY,cnameVARCHAR( 20)NOT NULL,cpnoVARCHAR( 20),creditFLOAT NOT NULL,tnameVARCHAR( 20)NOT NULL);/* 成績(jī)表 *

16、/DROP TABLE SC;CREATE TABLE SC(snoVARCHAR( 20),cnoVARCHAR( 20),gradeFLOAT ,pointFLOAT ,PRIMARYKEY( sno , cno ),ForeignKEY ( sno ) REFERENCESStudent( sno ),ForeignKEY ( cno ) REFERENCESCourse( cno );(3) 視圖的創(chuàng)建T-SQL語(yǔ)句:/* 創(chuàng)建 Stu_Cou_SC 視圖 */ DROP VIEW Stu_Cou_SC;CREATE VIEWStu_Cou_SC(sno,sname,cno,cname

17、,credit,grade,point,tel)ASSELECT s.sno,sname,FROMStudent s,CourseWHEREs.sno=sc.snoc .cno,cname,credit,grade,point,tel c,SC scAND c .cno=o;4)各模塊中的功能實(shí)現(xiàn)a)功能界面(截圖);管理員登錄模塊功能截圖用戶登錄添加學(xué)生信息更新學(xué)生信息r繹寒學(xué)生信息1確走b;刪除學(xué)生信息信息查詢 查詢學(xué)信息精確查詢模糊查詢用戶維護(hù)添加用戶修改密碼幫助切換用戶登錄彈出登錄窗體選擇學(xué)生登錄學(xué)生登錄功能截圖信息維護(hù)科韻佶息幵發(fā)信息查詢b) 功能界面簡(jiǎn)單描述;首先是運(yùn)行程

18、序,進(jìn)入用戶登錄界面,登錄是要進(jìn)行身份驗(yàn)證,在這登 錄過(guò)程系統(tǒng)會(huì)通過(guò)數(shù)據(jù)庫(kù)中的User表存儲(chǔ)的數(shù)據(jù)進(jìn)行驗(yàn)證,并判斷用標(biāo)識(shí)檢查登錄的類型。當(dāng)?shù)卿浀念愋褪枪芾韱T登錄時(shí),登錄成功后會(huì)進(jìn)入管理員操作界面,在 管理員登錄界面中,管理員可以進(jìn)行管理設(shè)置,如:設(shè)置學(xué)生基本信息,設(shè)置 課程信息,設(shè)置成績(jī)信息,每個(gè)設(shè)置都有相應(yīng)的添加、更新、刪除操作;接 著是信息查詢,在這兒可以查詢學(xué)生的基本信息,查詢課程信息,查詢成績(jī) 信息,在每一種查詢中都分別設(shè)置有精確查詢和模糊查詢等操作,模糊查詢 使得查詢?cè)诓樵兊臅r(shí)候更加方便;還有就是用戶維護(hù)操作,這里面管理員可 以添加用戶,修改登錄密碼,切換用戶登錄,最后是幫助中的關(guān)于

19、和系統(tǒng)的 退出。當(dāng)?shù)卿涱愋蜑閷W(xué)生登錄時(shí),登錄成功后會(huì)進(jìn)入學(xué)生操作界面,在此界面 中學(xué)生可以在信息維護(hù)下修改登錄密碼,更新個(gè)人基本信息,切換用戶登錄; 然后也可以查詢學(xué)生基本信息,查詢課程信息,查詢成績(jī)信息,同樣查詢中 也設(shè)置有精確查詢和模糊查詢;最后也有幫助中的關(guān)于和系統(tǒng)的退出。在界面的操作過(guò)程中,對(duì)一些在操作中可能是操作失誤導(dǎo)致的錯(cuò)誤進(jìn)行 了相應(yīng)的提示,比如成績(jī)的輸入必須是字符型數(shù)字,出生日期是格式應(yīng)為 yyyy-MM-dd格式,如果輸入格式不對(duì),給出相應(yīng)的提示,操作人員在給出 對(duì)應(yīng)的正確操作,這使得該系統(tǒng)變得更加智能化。c) T-SQL語(yǔ)句與宿主語(yǔ)言嵌套使用代碼段/*JAVA數(shù)據(jù)庫(kù)的連接程

20、序*/private static fin al Stri ng DBDRIVER =com.microsoft.sqlserver.jdbc.SQLServerDriver ;private static final String DBURL = jdbc:sqlserver:/localhost:1433;+ DatabaseName=SIMS ;private static final String DBUSER = sa;private static final String DBPASS= ;/ 密碼為空private Connection conn = null ;public D

21、atabaseConnection() try ClassforName (DBDRIVER); catch (ClassNotFoundException e) JOptionPane.showMessageDialog (null , e.getMessage();try conn = DriverManager. getConnection (DBURL, DBUSER, DBPASS; catch (SQLException e) JOptionPane. showMessageDialog (null , e.getMessage();public Connection getCon

22、nection() return this .conn ;public void close() if (this .conn != null ) try this .conn.close(); catch (SQLException e) JOptionPane. showMessageDialog (null , e.getMessage();/*添加用戶登錄查詢塊*/dbconn = new DatabaseConnection(); / 初始化連接類conn = dbconn .getConnection(); /獲得連接Stri ng sql = SELECT un ame,upas

23、s,bs FROM User WHERE un ame=? AND bs=? PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sql);pstmt.setStri ng(1, getName();pstmt.set In t(2, user .getBs();ResultSet rs = pstmt.executeQuery();user .set Un ame (null );user .setUpass(null );user .setBs(2);while (rs.next() user .setUna

24、me(rs.getString(1);user .setUpass(rs.getStri ng(2);user .setBs(rs.getl nt(3); catch (SQLException e) JOptionPane.showMessageDialog(this , e.getMessage(); fin ally if (conn != null ) dbconn .close();/*添加登錄用戶信息*/PreparedStatement pstmt = null ;ResultSet rs = null ;String sql1 = SELECT * FROM User WHER

25、E uname=? AND bs=?; try pstmt = conn .prepareStatement(sqll);pstmt.setStri ng(1, user name);pstmt.set In t(2, user .getBs();rs = pstmt.executeQuery();if (!rs. next()Stri ng sql3 = INSERT INTO User(u name,upass,bs) VALUES(?,?,?) int i=0;pstmt = conn .prepareStateme nt(sql3);pstmt.setStri ng(1, user n

26、ame);pstmt.setStri ng(2, passl);pstmt.setInt(3, user .getBs();i = pstmt.executeUpdate();if(i0)JOptionPane.showMessageDialog (this ,用戶添加成功”); jTextFieldl .setText( null );jPasswordFieldl .setText( null );jPasswordField2 .setText( null );jRadioButton1 .setSelected( false );jRadioButton2 .setSelected(

27、false );this .setVisible( false );else JOptionPane.showMessageDialog (this ,用戶添加失敗);else /在數(shù)據(jù)表中找到了改用戶請(qǐng)使JOptionPane.showMessageDialog(this ,對(duì)不起,該用戶名已經(jīng)存在, 用其他用戶名!);this .jPasswordFieldl .setText( null );this .jPasswordField2 .setText( null ); catch (SQLException e1) JOptionPane.showMessageDialog(this

28、,用戶添加失敗,數(shù)據(jù)庫(kù)操作異常: +e1.getMessage(); fin ally if (conn != null ) dbconn .close();/*修改用戶登錄密碼*/Stri ng sqll = SELECT * FROM User WHERE un ame=? AND upass=?”; try pstmt = conn .prepareStatement(sql1);pstmt.setStri ng(1, un ame);pstmt.setStri ng(2, passtr);rs = pstmt.executeQuery();if (!rs. next()JOptionP

29、ane.showMessageDialog (this ,密碼修改失敗,輸入的舊密碼不 正!);else Stri ng sql2 = Update User SET upass=? WHERE un ame=? AND upass=? int i=0;pstmt = conn .prepareStateme nt(sql2);pstmt.setStri ng(1, passl);pstmt.setStri ng(2, un ame);pstmt.setStri ng(3, passtr);i = pstmt.executeUpdate();if(i0)JOptionPane. showMes

30、sageDialog (this ,密碼修改成功); jPasswordFieldl .setText( null );jPasswordField2 .setText( null );jPasswordField3 .setText( null );this .setVisible( false );else JOptionPane.showMessageDialog (this ,密碼修改失敗); catch (SQLException e1) JOptionPane.showMessageDialog(this ,密碼修改失敗,數(shù)據(jù)庫(kù)操作異常: +e1.getMessage(); fin

31、 ally if (conn != null ) dbconn .close();/*添加學(xué)生基本信息塊*/String sqll = SELECT * FROM Student WHERE sno=?; ResultSet rs= null ;try PreparedStatement pstmt = null ;pstmt = conn .prepareStatement(sql1);pstmt.setString(1, stu .getSno();rs = pstmt.executeQuery(); catch (SQLException e) JOptionPane. showMess

32、ageDialog (this,查詢時(shí)發(fā)生異常為:” +e.getMessage();try if (rs.next() JOptionPane.showMessageDialog (this ,該學(xué)號(hào)的學(xué)生已經(jīng)存在, 請(qǐng)使用其 他學(xué)號(hào)! ”); else Stri ng sql2 = INSERT INTO Stude nt + (s no,sn ame,sex,birth,tel,qq,sdept,class,address)+ VALUES(?,?,?,?,?,?,?,?,?)pstmt = conn .prepareStateme nt(sql2); pstmt.setStri ng(

33、1, pstmt.setStri ng(2, pstmt.setStri ng(3, pstmt.setDate(4, pstmt.setStri ng(5, pstmt.setStri ng(6, pstmt.setStri ng(7, pstmt.setStri ng(8, pstmt.setStri ng(9,PreparedStatement pstmt = null ;stu .getS no ();stu .getS name();stu .getSex();new java.sql.Date( stu .getBirth().getTime();stu .getTel();stu

34、.getQq();stu .getSdept();stu .getSclass();stu .getAddress();if (pstmt.executeUpdate() 0) JOptionPane. showMessageDialog (this ,學(xué)生信息添加成功!);this .setVisible( false ); catch (SQLException e) JOptionPane.showMessageDialog(this,學(xué)生信息添加失?。〔迦氘惓?+e.getMessage();/*更新學(xué)生信息*/String sqll = SELECT * FROM Student

35、WHERE sno=?; PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sqll);pstmt.setString(1, stu .getSno();ResultSet rs = pstmt.executeQuery();if (!rs. next() JOptionPane.showMessageDialog (this ,不存在該學(xué)號(hào)的學(xué)生!不能進(jìn)行刪除操作! ”); else /該課程的數(shù)據(jù)存在,進(jìn)行刪除操作String sql2 = DELETE FROM Student WHERE sno=?;p

36、stmt = conn .prepareStateme nt(sql2);pstmt.setStri ng(1, stu .getS no ();if (pstmt.executeUpdate() 0) JOptionPane.showMessageDialog (this , OK!刪除成功!); catch (SQLException e) JOptionPane.showMessageDialog(this ,刪除失敗! +e.getMessage();/*刪除學(xué)生信息*/String sqll = SELECT * FROM Student WHERE sno=?;PreparedSt

37、atement pstmt = null ;try pstmt = conn .prepareStatement(sqll);pstmt.setString(1, stu .getSno();ResultSet rs = pstmt.executeQuery();if (!rs. next() JOptionPane.showMessageDialog(this ,不存在這個(gè)學(xué)號(hào)的學(xué)生,請(qǐng)重新輸入學(xué)號(hào)! ”); else stu.setS name(rs.getStri ng(2);stu .setSex(rs.getStri ng(3);stu .setBirth(rs.getDate (4

38、);stu.setTel(rs.getStri ng(5);stu.setQq(rs.getStri ng(6);stu .setSdept(rs.getStri ng( 7);stu .setSclass(rs.getStri ng(8);stu .setAddress(rs.getStri ng(9);flag = true ; catch (SQLException e) JOptionPane.showMessageDialog(this , SQL異常:+ e.getMessage(),錯(cuò)誤提示 ”,JOptionPane.ERROR_MESSAGEString sqll = SEL

39、ECT * FROM Student WHERE sno=?;PreparedStatement pstmt =null ;try pstmt = conn .prepareStatement(sql1);pstmt.setString(1, stu .getSno();ResultSet rs = pstmt.executeQuery();all = new ArrayList();while (rs.next() stu = new Student();String sno = rs.getString(1);String sname = rs.getString(2);String se

40、x = rs.getString(3);Date birth = null ;try birth = new SimpleDateFormat( yyyy-MM-DD ).parse(rs .getStri ng(4); catch (ParseException e) JOptionPane. showMessageDialog (this ,查詢得到的日期格式不符合”+ e.getMessage();String tel = rs.getString(5);String qq = rs.getString(6);String sdept = rs.getString(7);String s

41、class = rs.getString(8);String addr = rs.getString(9);stu.setS no(sno);stu.setS name(s name);stu.setSex(sex);stu.setBirth(birth);stu.setTel(tel);stu.setQq(qq);stu.setSdept(sdept);stu .setSclass(sclass);stu .setAddress(addr);all .add(stu);if (all .size() = 0) JOptionPane.showMessageDialog (this ,沒(méi)有查詢

42、到相關(guān)的數(shù)據(jù)!n); else if (all .size() 0) /*這段是對(duì)查詢的結(jié)果進(jìn)行顯示的代碼,這里省略*/ catch (SQLException e) JOptionPane.showMessageDialog(this ,查詢學(xué)生記錄失敗!查詢異常:+ e.getMessage(); fin ally if (conn != null ) dbconn .close();/*使用模糊查詢方式查詢學(xué)生基本信息*/Stri ng sql2 = SELECT * FROM Stude nt WHERE sno LIKE ? OR sn ame LIKE ? OR sdept LIK

43、E ? OR class LIKE ?;PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sql2);pstmt.setStri ng(1,pstmt.setStri ng(2,pstmt.setStri ng(3,pstmt.setStri ng(4,%+ keyword + + keyword + + keyword + + keyword +%); %);%);%);ResultSet rs = pstmt.executeQuery(); all = new ArrayList();while (rs.n

44、ext() stu = new Student();/注意這個(gè)句子不能放到外面去,每次都必須重新產(chǎn)生一個(gè)對(duì)象String sno = rs.getString(1);String sname = rs.getString(2);String sex = rs.getString(3);Date birth = null ;try birth = new SimpleDateFormat( yyyy-MM-DD ).parse(rs.getStri ng(4); catch (ParseException e) JOptionPane. showMessageDialog (this ,查詢得到的日期格式不符合”+ e.getMessage();String tel = rs.getString(5);String qq = rs.getString(6);String sdept = rs.getString(7);String sclass = rs.getString(8);String addr = rs.getString(9);stu.setS no(sno);

溫馨提示

  • 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)論