版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理課程設(shè)計報告題目:學(xué)生信息管理系統(tǒng)學(xué)生姓名:穆嶺(徐清鋒、冉麗華)學(xué)號:0908060070班級:計科092院系:計算機科學(xué)與信息學(xué)院專業(yè)年級:計算機科學(xué)與技術(shù) 2009級2011 年 12月 22 日一、需求分析需包含內(nèi)容為:(1)問題描述:學(xué)生信息的管理是學(xué)校很重要的一項工作,而人工管理學(xué) 生信息的話,無疑是一個很費時費力的事情,而且效率不高,容易出錯,往往是 學(xué)校進行學(xué)生工作的一個瓶頸問題,有一個學(xué)生信息管理的系統(tǒng)就能夠幫助學(xué)校 更好完成學(xué)生信息管理的工作,降低管理成本。所以我們組編寫了一個學(xué)生信息 管理系統(tǒng),使其在學(xué)生管理工作中發(fā)揮更大的作用。(2)系統(tǒng)功能描述:本系統(tǒng)是一個
2、學(xué)生信息管理系統(tǒng),主要管理學(xué)生的基本信息,課程信息,以 及學(xué)生選課成績信息等,登錄的模塊有兩種登錄類型,分別是管理員登錄和學(xué)生 登錄,如果是管理員登錄的話,進入管理員界面,要求管理員界面中可以信息的 學(xué)生基本信息、課程基本信息和學(xué)生選課成績信息的管理設(shè)置;還有信息查詢, 在這塊兒中可以進行學(xué)生基本信息的查詢, 課程信息的查詢,以及選課成績信息 的查詢;除此之外,要求設(shè)一個用戶維護模塊,在這個模塊中管理員可以添加管 理員用戶或者是學(xué)生用戶,可以修改密碼,并且能夠切換用戶登錄;接著是幫助, 幫助中顯示系統(tǒng)的版本;最后要求有一個推出系統(tǒng)按鈕。如果是學(xué)生登錄,那么 學(xué)生可以進行學(xué)生信息的維護,可以進行
3、登錄密碼的修改,基本信息的修改,以 及切換用戶登錄;可以進行學(xué)生基本信息的查詢,學(xué)生課程學(xué)習(xí)的查詢,學(xué)生選 課成績信息的查詢。接著是幫助,幫助中顯示系統(tǒng)的版本;最后要求有一個推出 系統(tǒng)按鈕。其詳細的操作框架流程在下面的圖中可以見到。操作流程框圖:鯽難息_jna)I a用口站護f鹼魏MA'I艷負;1k認幫朋 關(guān)干存儲的數(shù)據(jù)信息:User表(用戶名,密碼,用戶類型標(biāo)識),用于存儲登錄用戶信息;Student表(學(xué)號,姓名,性別,出生日期,電話, QQ號,專業(yè),班級,家庭地 址),用于存儲學(xué)生基本信息;Course表(課程號,課程名,先行課,學(xué)分,教師姓名),用于存儲課程基本信息; SC表(
4、學(xué)號,課程號,成績,績點),用于存儲學(xué)生選課成績信息。(3)有何安全性與完整性方面的要求。安全性:如果是管理員登錄系統(tǒng):可以進行管理設(shè)置,包括(設(shè)置學(xué)生的基 本信息、設(shè)置課程信息、設(shè)置學(xué)生成績信息),設(shè)置各種信息的時候有添加,刪 除和修改等相應(yīng)功能,然后是信息查詢,包括(查詢學(xué)生基本信息,查詢課程信 息、查詢學(xué)生成績信息),用戶的維護,包括(添加用戶,修改用戶密碼,切換 用戶登錄),幫助,退出系統(tǒng)。如果是 學(xué)生登錄系統(tǒng):可以修改自己的基本信息, 修改個人登錄密碼,切換用戶登錄,同樣可進行信息查詢,包括(查詢學(xué)生基本 信息,查詢課程信息、查詢學(xué)生成績信息),查看幫助,退出系統(tǒng)。完整性:主要是在刪
5、除學(xué)生信息和課程信息的時候如果在選課信息中存在選 課成績信息的話,那么就不能直接進行相應(yīng)信息的刪除, 在開發(fā)中要給出相應(yīng)的 信息提示,在進行各種添加、和更新操作之前也有進行相應(yīng)的判斷, 如果原來的 信息中已經(jīng)有了所要添加的該條信息, 怎不能添添加,并給出相應(yīng)的提示,如果 不存在所要更新的信息的時候也不能進行更新, 并給出相應(yīng)的提示。具體的完整 性約束在編程中具體給出。、概念結(jié)構(gòu)設(shè)計I Cent ifi er l QiSI.0Cpi ) Variabledura iters(20)<!a>sx-aneVar i ablechirazterE(.30)StKVariaMechirait
6、ftsrEGO)birllttlVu-iaalechurai:t»TE御磯Variablechira:ter5sceptVariablechirazterE©)cl u sVar i ahlechil"*.: tersCM)Variablechira.:terECEO)S txdiTlt畫出系統(tǒng)整體的E-R模型;并對模型中所出現(xiàn)的實體及屬性等信息加以說明概念模型Cjio電 cLar機亡t吐占 12DJdjmHie41 1 4.LJL-C 吐皿 鈕 1讓創(chuàng) GO) G)Vwi thl 電 cltflrirtiirs GO) creditFloatV*ri ible
7、ctaracterE (20)物理模型三、邏輯結(jié)構(gòu)設(shè)計(1) 模式設(shè)計:按系統(tǒng)整體 E-R模型,寫出關(guān)系模式;并利用數(shù)據(jù)字典加 以描述。(如每個關(guān)系模式有何屬性、屬性的類型、屬性值的長度、是否可取空 值、是否為主碼、有何約束條件等信息);本系統(tǒng)的設(shè)計中主要涉及到四個表, 分別是User表、Student表,Course表, SC表,在這四個表中,User表用于存儲用戶信息,Stude nt表存儲學(xué)生信息表, Course表存儲課程信息,SC表存儲學(xué)生選課的成績信息。這四個表的結(jié)構(gòu)如下: User 表屬性名存儲代碼類型長度是否可為空主鍵否備注用戶名un ameVARCHAFI 20否是用戶登錄名
8、密碼用戶類型標(biāo)識upass bsVARCHAFINTI 30否否用戶登錄密碼 用于標(biāo)識是管理員 還是學(xué)生Student 表屬性名存儲代碼類型長度是否可為空主鍵否備注學(xué)號 姓名sno sn ameVARCHAVARCHAIR 20R 20否否是學(xué)生學(xué)號學(xué)生姓名性別 出生日期sex birthVARCHAIDATER 2否性別出生日期電話telVARCHAIR 20聯(lián)系電話QC號 專業(yè)qq sdeptVARCHAIVARCHAR 20R 20否QC號碼 學(xué)生所在專業(yè)班級classVARCHAR 20否所在班級家庭地址addressVARCHAIR 50學(xué)生家庭地址Course 表屬性名存儲代碼類型
9、長度是否可為空主鍵否|備注課程號enoVARCHAIR 20否是課程編號課程名 先行課cn ame epnoVARCHAIVARCHAIR 20R 20否課程名 先行課程學(xué)分creditFLOAT否學(xué)分教師姓名tn ameVARCHAIR 20否教師姓名SC表屬性名存儲代碼類型長度是否可為空主鍵否|備注學(xué)號snoVARCHaR 20否是學(xué)號課程號enoVARCHAR 20否是課程編號成績 績點grade poi ntFLOATFLOAT課程成績 課程績點(2) 子模式設(shè)計:即針對自己的設(shè)計模塊的應(yīng)用需定義什么樣的視圖表結(jié)構(gòu);并利用數(shù)據(jù)字典加以描述。由于在查詢學(xué)生成績信息的時候要查詢學(xué)生學(xué)號、姓
10、名、課程號、課程名、 學(xué)分、成績、績點、聯(lián)系電話,這就需要涉及到三個表的連接,為了查詢的方便, 所以在進行設(shè)計的時候創(chuàng)建了一個 Stu_Cou_SC視圖表,表結(jié)構(gòu)為Stu_Cou_SC視 圖(學(xué)號,姓名,課程號,課程名,學(xué)分,成績,績點魚系電話)Stu_Cou_SC屬性名存儲代碼類型長度是否可為空主鍵否備注學(xué)號 姓名sno sn ameVARCHAVARCHAR 20R 20否否是學(xué)生學(xué)號學(xué)生姓名課程號cnoVARCHAR 20否是課程編號課程名cn ameVARCHAR 20一否課程名學(xué)分creditFLOAT學(xué)分成績 績點grade poi ntFLOATFLOAT成績 績點聯(lián)系電話tel
11、VARCHAR 20聯(lián)系電話(3) 畫出系統(tǒng)功能模塊圖,并對各功能模塊進行簡單介紹學(xué)牛脅錄 甲戶睜錄_置理崗曹錄在登錄模塊中,設(shè)置了兩種登錄類型,一種是管理員登錄,一種是學(xué)生登錄。,信息維護信扈查飼,廠一4竽土登錄 用廣登錄幫助尸O退出;O/管理設(shè)置,JW息查詢営理員登錄用戶維護k鄢助PI退岀這兩種登錄有著不同的使用權(quán)限。管理員登錄系統(tǒng)可以進行管理設(shè)置,信息 查詢和用戶維護等操作,學(xué)生登錄系統(tǒng)可以進行信息維護和信息查詢等。設(shè)貴學(xué)生信息更新尋生星本信息刪祿學(xué)生基本佶惠殊加課程信息、 刪瞎慄程信息話加咸鏡佶息J*"V刪除嵌強信息在管理設(shè)置模塊中,用戶可以進行學(xué)生信息的設(shè)置、課程信息設(shè)置、
12、選課成績信息的設(shè)置,在各個信息的設(shè)置中都可以進行添加、 更新和刪除操作。信亀査詢:酋洞磴蛭時舄在信息查詢模塊中,用戶可以進行學(xué)生基本信息查詢,課程信息查詢以及學(xué)生選課成績信息的查詢。在各個查詢中又設(shè)置有精確查詢和模糊查詢,使其查詢更智能化。茹加管理員由戶用戶維護藩加寧生用戶/幅改密碼1切換舟戶登錄幫助黃于退出X.-逼岀扇級在用戶維護模塊中,可以進行添加用戶,修改用戶登錄密碼,切換用戶登錄功能。修改逾碼T腫改個人甚本信息信息維護I切換登錄用戶_?'在學(xué)生登錄后的信息維護模塊中,學(xué)生統(tǒng)一可以修改登錄密碼,修改個人基本信息,和切換用戶登錄。四、數(shù)據(jù)庫的物理設(shè)計在本系統(tǒng)的數(shù)據(jù)庫設(shè)計階段,我們?yōu)?/p>
13、其建立了下面的三個索引字段,分別是基于Stude nt表建立的Stus no以sno為升序索引,基于 Course表建立的Coucno以 eno為升序索引,和基于SCS建立的SCn以sno為升序,以cno為降序的索引。對 應(yīng)的T-SQI語句如下:/ * 創(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;CREA
14、TE INDEX SCno ON SC( sno ASC, cno DESC);五、數(shù)據(jù)庫設(shè)計實現(xiàn)及運行(1) 數(shù)據(jù)庫的創(chuàng)建T-SQL語句:CREATE DATABASE SIMS;(2) 數(shù)據(jù)表的創(chuàng)建T-SQL語句:/* 用戶表 */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
15、KEY,snameVARCHAR( 20)NOT NULL,sexVARCHAR( 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
16、 NULL,tnameVARCHAR( 20)NOT NULL);/* 成績表 */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語句:/* 創(chuàng)建 Stu_Cou_SC 視圖 */ DROP VIEW Stu_Cou_SC;
17、CREATE VIEWStu_Cou_SC(sno,sname,cno,cname,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)各模塊中的功能實現(xiàn)a)功能界面(截圖);管理員登錄模塊功能截圖用戶登錄添加學(xué)生信息28 / 24更新學(xué)生信息刪除學(xué)生信息信息查詢查詢學(xué)信息精確查詢模糊查詢字號J90aOEOOC-2Crgooos誠剛&JOOQ.KkdOtCOx.1
18、.90-J-.O0.J&C'9&aQEOO7D7訴 WQ5W73倒Cr9MQBOQD曹兇詠訊g一井審利了確字宅配3UL蘭iw字蘭羹±七豈£5王.Ifrlw2N2321卄宜機科學(xué).計科鉗2 所申盍訃¥=002舅男kkBt 一女21«576543566 屈軸13*934301. 313213032155=082朝工訕162BS1171-44 12443232 卄尊機祥宇 _ 計科 G&21S2fiGD6S4£ 1129B3734B 計腳I科宇 _."計科03215281255 502537437 iUl .
19、計BQ32計胡吟計科DO莠逛性址:S*1興盤晝期丄腳瞬兄習(xí)旅壯篩冃七訐誦:1>lt 1IM I/.'- -J i. TtlTll'1- I r.:J2黃州債匸用戶維護添加用戶修改密碼幫助切換用戶登錄彈出登錄窗體選擇學(xué)生登錄學(xué)生登錄功能截圖信息維護信息查詢b) 功能界面簡單描述;首先是運行程序,進入用戶登錄界面,登錄是要進行身份驗證,在這登 錄過程系統(tǒng)會通過數(shù)據(jù)庫中的 User表存儲的數(shù)據(jù)進行驗證,并判斷用標(biāo)識檢 查登錄的類型。當(dāng)?shù)卿浀念愋褪枪芾韱T登錄時,登錄成功后會進入管理員操作界面,在 管理員登錄界面中,管理員可以進行管理設(shè)置,如:設(shè)置學(xué)生基本信息,設(shè)置 課程信息,設(shè)置
20、成績信息,每個設(shè)置都有相應(yīng)的添加、更新、刪除操作;接 著是信息查詢,在這兒可以查詢學(xué)生的基本信息,查詢課程信息,查詢成績 信息,在每一種查詢中都分別設(shè)置有精確查詢和模糊查詢等操作,模糊查詢 使得查詢在查詢的時候更加方便;還有就是用戶維護操作,這里面管理員可 以添加用戶,修改登錄密碼,切換用戶登錄,最后是幫助中的關(guān)于和系統(tǒng)的 退出。當(dāng)?shù)卿涱愋蜑閷W(xué)生登錄時,登錄成功后會進入學(xué)生操作界面,在此界面 中學(xué)生可以在信息維護下修改登錄密碼,更新個人基本信息,切換用戶登錄; 然后也可以查詢學(xué)生基本信息,查詢課程信息,查詢成績信息,同樣查詢中 也設(shè)置有精確查詢和模糊查詢;最后也有幫助中的關(guān)于和系統(tǒng)的退出。在界
21、面的操作過程中,對一些在操作中可能是操作失誤導(dǎo)致的錯誤進行 了相應(yīng)的提示,比如成績的輸入必須是字符型數(shù)字,出生日期是格式應(yīng)為 yyyy-MM-dd格式,如果輸入格式不對,給出相應(yīng)的提示,操作人員在給出 對應(yīng)的正確操作,這使得該系統(tǒng)變得更加智能化。c) T-SQL語句與宿主語言嵌套使用代碼段/*JAVA數(shù)據(jù)庫的連接程序*/private static fin al Stri ng DBDRIVER =com.microsoft.sqlserver.jdbc.SQLServerDriver" private static final String DBURL = "jdbc:s
22、qlserver:/localhost:1433;"+ "DatabaseName=SIMS "private static final String DBUSER = "sa"private static final String DBPASS= ""/ 密碼為空private Connection conn = null ;public DatabaseConnection() try ClassforName (DBDRIVER); catch (ClassNotFoundException e) JOptionPan
23、e.showMessageDialog (null , e.getMessage();try conn = DriverManager. getConnection (DBURL, DBUSER, DBPASS; catch (SQLException e) JOptionPane. showMessageDialog (null , e.getMessage();public Connection getConnection() return this .conn ;public void close() if (this .conn != null ) try this .conn.clo
24、se(); catch (SQLException e) JOptionPane. showMessageDialog (null , e.getMessage();/*添加用戶登錄查詢塊*/dbconn = new DatabaseConnection(); / 初始化連接類conn = dbconn .getConnection(); /獲得連接Stri ng sql = "SELECT un ame,upass,bs FROM User WHERE un ame=? AND bs=?" PreparedStatement pstmt = null ;try pstmt
25、 = 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 .setUname(rs.getString(1);user .setUpass(rs.getStri ng(2);user .setBs(rs.getl nt(3); ca
26、tch (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 WHERE uname=? AND bs=?" try pstmt = conn .prepareStatement(sqll);pstmt.se
27、tStri 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 name);pstmt.setStri ng(2, passl);pstmt.setInt(3, user .get
28、Bs();i = pstmt.executeUpdate();if(i>0)JOptionPane.showMessageDialog (this ,"用戶添加成功”); jTextFieldl .setText( null );jPasswordFieldl .setText( null );jPasswordField2 .setText( null );jRadioButton1 .setSelected( false );jRadioButton2 .setSelected( false );this .setVisible( false );else JOptionP
29、ane.showMessageDialog (this ,"用戶添加失敗");else /在數(shù)據(jù)表中找到了改用戶請使JOptionPane.showMessageDialog(this ,"對不起,該用戶名已經(jīng)存在, 用其他用戶名!");this .jPasswordFieldl .setText( null );this .jPasswordField2 .setText( null ); catch (SQLException e1) JOptionPane.showMessageDialog(this ,"用戶添加失敗,數(shù)據(jù)庫操作異常:
30、"+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()JOptionPane.s
31、howMessageDialog (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(i>0)JOp
32、tionPane. showMessageDialog (this ,"密碼修改成功"); jPasswordFieldl .setText( null );jPasswordField2 .setText( null );jPasswordField3 .setText( null );this .setVisible( false );else JOptionPane.showMessageDialog (this ,"密碼修改失敗"); catch (SQLException e1) JOptionPane.showMessageDialog(th
33、is ,"密碼修改失敗,數(shù)據(jù)庫操作異常: "+e1.getMessage(); fin 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 = ps
34、tmt.executeQuery(); catch (SQLException e) JOptionPane. showMessageDialog (this,"查詢時發(fā)生異常為:” +e.getMessage();try if (rs.next() JOptionPane.showMessageDialog (this ,"該學(xué)號的學(xué)生已經(jīng)存在,請使用其他學(xué)號! ”); else Stri ng sql2 = "INSERT INTO Stude nt "+ "(s no,sn ame,sex,birth,tel,qq,sdept,class
35、,address)"+ "VALUES(?,?,?,?,?,?,?,?,?)"PreparedStatement pstmt = null ;pstmt = conn .prepareStateme nt(sql2);pstmt.setStri ng(1,pstmt.setStri ng(2,pstmt.setStri ng(3,stu .getS no ();stu .getS name();stu .getSex();pstmt.setDate(4, new java.sql.Date( stu .getBirth().getTime();pstmt.setS
36、tri ng(5, pstmt.setStri ng(6, pstmt.setStri ng(7, pstmt.setStri ng(8, pstmt.setStri ng(9,stu .getTel(); stu.getQq();stu .getSdept(); stu .getSclass();stu .getAddress();if (pstmt.executeUpdate() > 0) JOptionPane. showMessageDialog (this ,"學(xué)生信息添加成功!");this .setVisible( false ); catch (SQL
37、Exception e) JOptionPane.showMessageDialog(this,"學(xué)生信息添加失??!插入異常為:"+e.getMessage();/*更新學(xué)生信息*/String sqll = "SELECT * FROM Student WHERE sno=?" PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sqll);pstmt.setString(1, stu .getSno();ResultSet rs = pstmt.executeQuery
38、();if (!rs. next() JOptionPane.showMessageDialog (this ,"不存在該學(xué)號的學(xué)生!不能進行刪除操作! ”); else /該課程的數(shù)據(jù)存在,進行刪除操作String sql2 = "DELETE FROM Student WHERE sno=?"pstmt = conn .prepareStateme nt(sql2);pstmt.setStri ng(1, stu .getS no ();if (pstmt.executeUpdate() > 0) JOptionPane.showMessageDialo
39、g (this , "OK!刪除成功!"); catch (SQLException e) JOptionPane.showMessageDialog(this ,"刪除失敗! "+e.getMessage();/*刪除學(xué)生信息*/String sqll = "SELECT * FROM Student WHERE sno=?"PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sqll);pstmt.setString(1, stu .getSno()
40、;ResultSet rs = pstmt.executeQuery();if (!rs. next() JOptionPane.showMessageDialog(this ,"不存在這個學(xué)號的學(xué)生,請重新輸入學(xué)號! ”); else stu.setS name(rs.getStri ng(2);stu .setSex(rs.getStri ng(3);stu .setBirth(rs.getDate (4);stu.setTel(rs.getStri ng(5);stu.setQq(rs.getStri ng(6);stu .setSdept(rs.getStri ng( 7);
41、stu .setSclass(rs.getStri ng(8);stu .setAddress(rs.getStri ng(9);flag = true ; catch (SQLException e) JOptionPane.showMessageDialog(this , "SQL異常:"+ e.getMessage(),"錯誤提示 ”,JOptionPane.ERROR_MESSAGEString sqll = "SELECT * FROM Student WHERE sno=?"PreparedStatement pstmt =null
42、 ;try pstmt = conn .prepareStatement(sql1);pstmt.setString(1, stu .getSno();ResultSet rs = pstmt.executeQuery();all = new ArrayList<Student>();while (rs.next() stu = new Student();String sno = rs.getString(1);String sname = rs.getString(2);String sex = rs.getString(3);Date birth = null ;try bi
43、rth = 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);Str
44、ing 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 ,"沒有查詢到相關(guān)的數(shù)據(jù)!n"); else
45、 if (all .size() > 0) /*這段是對查詢的結(jié)果進行顯示的代碼,這里省略*/ 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 s
46、dept LIKE ? OR class LIKE ?"PreparedStatement pstmt = null ;try pstmt = conn .prepareStatement(sql2);pstmt.setStri ng(1."%" + keyword + "%");pstmt.setStri ng(2,"%" + keyword + "%");pstmt.setStri ng(3,"%" + keyword + "%");pstmt.setStri
47、ng(4,"%" + keyword + "%");ResultSet rs = pstmt.executeQuery();all = new ArrayList<Student>();while (rs.next() 每次都必須重新stu = new Student();/注意這個句子不能放到外面去,產(chǎn)生一個對象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);St
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)水果蔬菜購銷協(xié)議簡版(2024修訂)版B版
- 16《大家排好隊》(說課稿)2024-2025學(xué)年統(tǒng)編版(2024)(五四制)道德與法治一年級上冊
- 專職教學(xué)人員2024年聘用協(xié)議樣式版B版
- 2《丁香結(jié)》說課稿-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 專用玻璃鋼儲罐防腐作業(yè)協(xié)議版
- 精神科停水和突然停水的應(yīng)急預(yù)案及程序
- 《撫養(yǎng)權(quán)離婚合同模板(2024年適用)》版B版
- 代表對物業(yè)服務(wù)質(zhì)量的月度評分表格
- 福建省南平市武夷山第二中學(xué)2021-2022學(xué)年高一生物模擬試題含解析
- 福建省南平市文昌學(xué)校2022年高一英語模擬試題含解析
- 八年級數(shù)學(xué)上冊《第十八章 平行四邊形》單元測試卷及答案(人教版)
- 中職計算機應(yīng)用基礎(chǔ)教案
- 盤龍煤礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 消防安全評估質(zhì)量控制體系(2020年整理)課件
- 新生兒沐浴及撫觸護理
- 理想氣體的性質(zhì)與熱力過程
- 2022年浙江省各地市中考生物試卷合輯7套(含答案)
- 性病轉(zhuǎn)診與會診制度
- 教學(xué)案例 英語教學(xué)案例 市賽一等獎
- 南京市勞動合同書(全日制文本)
- GB/T 28859-2012電子元器件用環(huán)氧粉末包封料
評論
0/150
提交評論