基于Java編程的學(xué)生選課系統(tǒng)_第1頁(yè)
基于Java編程的學(xué)生選課系統(tǒng)_第2頁(yè)
基于Java編程的學(xué)生選課系統(tǒng)_第3頁(yè)
基于Java編程的學(xué)生選課系統(tǒng)_第4頁(yè)
基于Java編程的學(xué)生選課系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(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)介

PAGE55Java的學(xué)生選課系統(tǒng)摘要:本文較為詳細(xì)的介紹了基于Java編程語(yǔ)言和SQLServer2000數(shù)據(jù)庫(kù)所編的學(xué)校學(xué)生選課系統(tǒng)。給出了開(kāi)發(fā)此系統(tǒng)的軟硬件平臺(tái)以及開(kāi)發(fā)環(huán)境,較為詳盡介紹了需求分析過(guò)程,系統(tǒng)的界面構(gòu)思以及搭建,軟件代碼的開(kāi)發(fā)模式,分層搭建,以及部分代碼實(shí)現(xiàn)。討論了SQLServer2000數(shù)據(jù)庫(kù)的規(guī)定,存儲(chǔ)過(guò)程,開(kāi)發(fā)java程序的習(xí)慣,以及系統(tǒng)的用處和特點(diǎn)。本系統(tǒng)為增強(qiáng)Java程序的可移植性,代碼的的復(fù)用性,功能界面的可觀性,系統(tǒng)的可維護(hù)性而對(duì)Java源代碼進(jìn)行了抽象封裝,對(duì)以后可能需要修改的變量放進(jìn)了配置文件,同時(shí)具有操作簡(jiǎn)單,界面美觀等特點(diǎn)。關(guān)鍵詞:Java,SQLServer2000,界面搭建,可移植性,需求分析,存儲(chǔ)過(guò)程引言隨著時(shí)間的推移,Java編程語(yǔ)言憑借其跨平臺(tái)性,安全性,程序健壯等特點(diǎn),越來(lái)越流行,尤其是2007年以后,跟隨著在移動(dòng)領(lǐng)域安卓系統(tǒng)的風(fēng)行,Java已然成為世界上最受歡迎的編程語(yǔ)言之一。同時(shí)由于互聯(lián)網(wǎng)時(shí)代的全面到來(lái),世界上個(gè)各個(gè)領(lǐng)域都需要一種工具來(lái)存儲(chǔ)數(shù)據(jù)和調(diào)用數(shù)據(jù),于是數(shù)據(jù)庫(kù)營(yíng)運(yùn)而生,可以說(shuō)我們周圍的世界到處都是數(shù)據(jù)。因此編程語(yǔ)言和數(shù)據(jù)庫(kù)的緊密結(jié)合給我們的生活帶來(lái)了翻天覆地的變化,使我們生活的世界真正實(shí)現(xiàn)了全民互聯(lián),可以說(shuō)在硬件的高度發(fā)達(dá)的基礎(chǔ)之上,軟件的作用已經(jīng)滲透到當(dāng)今社會(huì)的各個(gè)方面。伴隨著Java語(yǔ)言和各個(gè)數(shù)據(jù)庫(kù)的更新和發(fā)展,編程的周期變短了,系統(tǒng)的安全性,可維護(hù)性等多方面得到了很大提升。如在生活購(gòu)物領(lǐng)域:像眾所周知的淘寶網(wǎng)其實(shí)就是用Java編程語(yǔ)言開(kāi)發(fā)的。當(dāng)然其他的一些較為大型的管理系統(tǒng),網(wǎng)頁(yè)前端開(kāi)發(fā),以及服務(wù)器的功能擴(kuò)展也是完全可以用Java編寫(xiě)。設(shè)計(jì)思想需求分析本系統(tǒng)是一個(gè)單機(jī)版的小型的學(xué)生選課管理系統(tǒng)。在本系統(tǒng)中,開(kāi)發(fā)了一個(gè)面向管理員、學(xué)生和教師這三個(gè)對(duì)象的教務(wù)平臺(tái)。對(duì)學(xué)生提供的服務(wù)有:登錄、選課、選擇課程、和查詢成績(jī)這幾個(gè)服務(wù)。對(duì)教師提供的服務(wù)有:登錄、查看個(gè)人信息和錄入學(xué)生成績(jī)。對(duì)管理員提供的服務(wù)有:登錄、增加、刪除、修改、查看學(xué)生和教師信息。開(kāi)發(fā)環(huán)境系統(tǒng)架構(gòu)設(shè)計(jì)(1)架構(gòu):?jiǎn)螜C(jī)(2)運(yùn)行軟件環(huán)境:windows7、jdk1.6(3)開(kāi)發(fā)環(huán)境: 硬件平臺(tái): CPU:I32.2GHz 內(nèi)存:512MB以上 軟件平臺(tái):windows7、jdk1.6 操作系統(tǒng):Windows7 數(shù)據(jù)庫(kù):SQLServer2000、SQLServerSP4補(bǔ)丁 開(kāi)發(fā)工具:MyEclipse2014 分辨率:1024*768功能塊功能框架模塊設(shè)計(jì)學(xué)生選課管理系統(tǒng)學(xué)生選課管理系統(tǒng)教師登錄模塊學(xué)生登錄模塊登錄模塊管理員登錄模塊教師信息管理模塊學(xué)生信息管理模塊教師錄入成績(jī)模塊教師個(gè)人信息模塊學(xué)生個(gè)人信息模塊學(xué)生選擇課程模塊學(xué)生查詢成績(jī)模塊圖-SEQ圖\*ARABIC\s11功能框架模塊各模塊功能簡(jiǎn)介:登錄界面:登錄界面是有帳號(hào),密碼,管理員帳號(hào)一字母A開(kāi)頭,教師帳號(hào)一字母T開(kāi)頭,學(xué)生帳號(hào)以字母S開(kāi)頭,登錄帳號(hào)或密碼輸入錯(cuò)誤會(huì)彈出相應(yīng)的提示對(duì)話框。學(xué)生信息管理模塊:管理員用于添加和刪除學(xué)生信息的模塊。教師信息管理模塊:管理員用于添加和刪除教師信息的模塊。教師個(gè)人信息模塊和學(xué)生個(gè)人信息模塊:展示當(dāng)前登錄的教師或者學(xué)生的個(gè)人信息教師錄入成績(jī)模塊:教師可以瀏覽選修自己課程的學(xué)生的信息并且錄入該學(xué)生的成績(jī)。學(xué)生選擇選修課模塊:該模塊通過(guò)表格的形式將所有課程列出來(lái),學(xué)生可以根據(jù)個(gè)人興趣選擇不同的課程,不能重復(fù)選課,否則會(huì)彈出對(duì)話框,提示用戶查看已經(jīng)選擇了的課程。學(xué)生查詢成績(jī)模塊:通過(guò)表格的形式將該學(xué)生選擇了的課程列出來(lái),如果教師有錄入成績(jī),則可以看到自己的課程成績(jī)。角色功能圖圖-2角色功能圖數(shù)據(jù)庫(kù)設(shè)計(jì)(概要設(shè)計(jì)...)E-R圖教師教師學(xué)生學(xué)生學(xué)號(hào)教師職稱學(xué)生姓名教師編號(hào)課程選課授課教師性別教師姓名所在班級(jí)學(xué)生生日學(xué)生性別教師生日所在院系學(xué)分課程編號(hào)課程名選課人數(shù)成績(jī)上課地點(diǎn)圖-3E-R圖關(guān)系模式學(xué)生(學(xué)生學(xué)號(hào),學(xué)生姓名,教師性別,教師生日,所在班級(jí))教師(教師編號(hào),教師姓名,教師性別,教師生日,教師職稱,所在院系)課程(課程號(hào),課程名,學(xué)分,選課人數(shù))選課(課程號(hào),學(xué)生學(xué)號(hào),成績(jī))授課(課程號(hào),教師編號(hào),上課地點(diǎn))數(shù)據(jù)庫(kù)管理系統(tǒng):MicrosoftSQLServer2000數(shù)據(jù)庫(kù)命名StudentManager數(shù)據(jù)庫(kù)表Logon(登錄帳號(hào)密碼)主要用來(lái)保存用戶登錄信息表-SEQ表\*ARABIC1登錄帳號(hào)密碼字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否主鍵UserIDchar10不為空主鍵Passwordcharr10StudentTable1(學(xué)生信息表)主要用來(lái)保存學(xué)生信息。表-SEQ表\*ARABIC2學(xué)生信息表字段名數(shù)據(jù)類型長(zhǎng)度主鍵否是否為空描述StudentIDChar10主鍵不為空學(xué)生學(xué)號(hào)StudentNameChar10不為空學(xué)生姓名StudentSexChar2不為空學(xué)生性別StudentBirthdayDatetime8學(xué)生生日Classchar16所在班級(jí)TeacherTable1(教師信息表)用來(lái)儲(chǔ)存教師的基本信息表-SEQ表\*ARABIC3教師信息表字段名數(shù)據(jù)類型長(zhǎng)度主鍵否是否為空描述TeacherIDChar10主鍵不為空教師編號(hào)TeacherNameChar10不為空教師姓名TeacherSexChar2不為空教師性別TeacherBirthdayDatetime8教師生日Postchar10教師職稱Departmentchar20所在院系CourseTable(課程信息表)表-SEQ表\*ARABIC4課程信息表字段名數(shù)據(jù)類型長(zhǎng)度主鍵否是否為空描述CourseIDChar16主鍵不為空課程編號(hào)CourseNameChar16不為空課程名PointChar8不為空學(xué)分StuNumberDatetime4不為空選課人數(shù)ScoreTable(學(xué)生成績(jī)表)用于存儲(chǔ)學(xué)生成績(jī)表-SEQ表\*ARABIC5學(xué)生成績(jī)表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否主鍵CourseIDchar16不為空主鍵StudentIDchar10不為空主鍵Scoreint4TeachTable(教師授課表)表-SEQ表\*ARABIC6教師授課表字段名數(shù)據(jù)類型長(zhǎng)度是否為空是否主鍵CourseIDchar16不為空主鍵TeacherIDchar10不為空主鍵Locationint10數(shù)據(jù)庫(kù)賬戶及權(quán)限(截圖)學(xué)生賬戶表圖-4學(xué)生賬戶教師賬戶表圖-5教師賬戶用戶登錄表:圖-6用戶登錄數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程:AllCourse:createprocAllCourseasbeginselectx.CourseID,x.CourseName,x.Point,y.TeacherName,y.Post,z.Location,x.StuNumberfromCoursex,TeacherTable1y,TeachTablezwherex.CourseID=z.CourseIDandy.TeacherID=z.TeacherIDendDeleteLogon:createprocDeleteLogon(@idchar(10))asbegindeletefromLogonwhereUserID=@idendDeleteStudent:createprocDeleteStudent(@idchar(10))asbegindeletefromStudentTable1whereStudentID=@idendDeleteTeacher:createprocDeleteTeacher(@idchar(10))asbegindeletefromTeacherTable1whereTeacherID=@idendInsertLogon:createprocInsertLogon(@idchar(10))asbegininsertintoLogonvalues(@id,@id)endInsertStudent:createprocInsertStudent(@useridchar(10),@usernamechar(10),@sexchar(2),@birthdatetime,@classchar(10))asbegininsertintoStudentTable1values(@userid,@username,@sex,@birth,@class)endreturnInsertTeacher:createprocInsertTeacher(@useridchar(10),@usernamechar(10),@sexchar(2),@birthdatetime,@postchar(10),@departmentchar(10))asbegininsertintoTeacherTable1values(@userid,@username,@sex,@birth,@post,@department)endreturnIsExistsStu:createprocIsExistsStu(@idchar(10))asbeginselect*fromStudentTable1whereStudentID=@idendIsExistsTea:createprocIsExistsTea(@idchar(10))asbeginselect*fromTeachertable1whereTeacherID=@idendProcAllStu:createprocProcAllStuasbeginselect*fromStudentTable1endProcAllTeacreateprocProcAllTeaasbeginselect*fromTeacherTable1endProcLogon:createprocProcLogon(@useridchar(16),@passwordchar(10))asbeginselect*fromLogonwhereUserID=@useridandPassword=@passwordendreturnProcModify:createprocProcModify(@idchar(10),@passwordchar(16))asbeginupdateLogonsetPassword=@passwordwhereUserID=@idendProcStudent:createprocProcStudent(@idchar(10))asbeginselect*fromStudentTable1whereStudentID=@idendSelectCourse:createprocSelectCourse(@idchar(10),@courseidchar(16))asbegininsertintoScoreTablevalues(@courseid,@id,null)endSelectedCourse:createprocSelectedCourse(@idchar(10))asbeginselect*fromScoreTablewhere@id=StudentIDendSelectedCourseNum:createprocSelectedCourseNum(@idchar(10))asbeginselectCOUNT(*)fromScoretablewhereStudentID=@idendSelectedDetail:createprocSelectedDetail(@idchar(10))asbeginselectx.CourseID,x.CourseName,x.Point,y.TeacherName,y.Post,z.Location,s.ScorefromCoursex,TeacherTable1y,TeachTablez,ScoreTableswhere@id=s.StudentIDandx.CourseID=z.CourseIDandz.TeacherID=y.TeacherIDandx.CourseID=s.CourseIDend系統(tǒng)界面截圖及功能說(shuō)明閃屏界面圖-7閃屏界面說(shuō)明:在進(jìn)入系統(tǒng)時(shí)候,會(huì)先出現(xiàn)這個(gè)閃屏界面,圖片區(qū)域開(kāi)始閃現(xiàn)文字(文字字體顏色隨時(shí)改變),同時(shí)加載條區(qū)域加載條開(kāi)始向右移動(dòng),當(dāng)系統(tǒng)加載條加載到頭時(shí)候,界面上的文字同時(shí)加載完成,然后在等數(shù)秒以后,此界面消失,而后進(jìn)入系統(tǒng)登錄界面。登錄界面圖-8登錄界面說(shuō)明:閃屏界面消失以后,系統(tǒng)進(jìn)入這個(gè)界面,供用戶輸入登錄信息,在用戶輸入用戶名和密碼以后,點(diǎn)擊登錄按鈕,如果用戶名和密碼都正確,不同類型的用戶會(huì)進(jìn)入不同界面,如果輸入有誤,會(huì)彈出一個(gè)對(duì)話框,提醒用戶輸入有誤,如果用戶點(diǎn)擊取消按鈕,就會(huì)退出登錄界面。如下圖所示:圖-9提示管理員界面管理員功能選擇界面圖-10功能選擇界面說(shuō)明:在管理員輸入正確的用戶名和密碼以后,進(jìn)入這這界面,此界面提供了兩個(gè)按鈕,代表管理員的兩個(gè)功能,點(diǎn)擊不同按鈕會(huì)彈出不同界面,此界面不會(huì)消失。學(xué)生信息管理界面圖-11學(xué)生信息管理界面說(shuō)明:在管理員點(diǎn)擊了“學(xué)生信息管理”按鈕以后,進(jìn)入這個(gè)界面(展示學(xué)生的一些基本信息),在這個(gè)界面里面,管理員可以錄入學(xué)生的信息和刪除學(xué)生的信息。當(dāng)管理員準(zhǔn)備錄入學(xué)生的信息時(shí)候,需要在不同的文本輸入框里面,輸入該學(xué)生對(duì)應(yīng)的信息,然后點(diǎn)擊輸入按鈕,學(xué)生信息就會(huì)錄入進(jìn)去。在界面的列表里就會(huì)出現(xiàn)該學(xué)生的信息。但當(dāng)學(xué)生編號(hào)和學(xué)生姓名為空時(shí)候,會(huì)彈出一個(gè)對(duì)話框,提醒管理員學(xué)生編號(hào)和學(xué)生姓名為空。如下圖所示:圖-1SEQ圖\*ARABIC\s21錯(cuò)誤提示當(dāng)管理員準(zhǔn)備刪除某個(gè)學(xué)生的信息時(shí)候,需要先點(diǎn)擊選中某個(gè)學(xué)生的信息,然后點(diǎn)擊刪除按鈕,這樣在學(xué)生信息列表中就不見(jiàn)了這個(gè)學(xué)生的信息,同時(shí)在數(shù)據(jù)庫(kù)中也更新數(shù)據(jù)。但當(dāng)管理員沒(méi)有選中一行學(xué)生信息時(shí)候,就會(huì)彈出一個(gè)對(duì)話框,提醒管理員,先選中一行數(shù)據(jù)。如下圖所示:圖-1SEQ圖\*ARABIC\s22教師信息管理界面圖-1SEQ圖\*ARABIC\s23教師信息管理界面說(shuō)明:在管理員點(diǎn)擊了“教師信息管理”按鈕以后進(jìn)入這個(gè)界面(此界面和“學(xué)生信息管理”并列),在這個(gè)界面里面,管理員可以錄入教師的信息和刪除教師的信息。當(dāng)管理員準(zhǔn)備錄入教師的信息時(shí)候,需要在不同的文本輸入框里面,輸入該教師對(duì)應(yīng)的信息,然后點(diǎn)擊輸入按鈕,教師信息就會(huì)錄入進(jìn)去。在界面的列表里就會(huì)出現(xiàn)該教師的信息。但當(dāng)教師編號(hào)和教師姓名為空時(shí)候,會(huì)彈出一個(gè)對(duì)話框,提醒管理員教師編號(hào)和教師姓名為空。如下圖所示:圖-1SEQ圖\*ARABIC\s24錯(cuò)誤報(bào)錯(cuò)當(dāng)管理員準(zhǔn)備刪除某個(gè)教師的信息時(shí)候,需要先點(diǎn)擊選中某個(gè)教師的信息,然后點(diǎn)擊刪除按鈕,這樣在教師信息列表中就不見(jiàn)了這個(gè)教師的信息,同時(shí)在數(shù)據(jù)庫(kù)中也更新數(shù)據(jù)。但當(dāng)管理員沒(méi)有選中一行教師信息時(shí)候,就會(huì)彈出一個(gè)對(duì)話框,提醒管理員,先選中一行數(shù)據(jù)。如下圖所示:圖-16提示學(xué)生界面學(xué)生功能選擇界面圖-17學(xué)生功能選擇界面說(shuō)明:在學(xué)生輸入正確的用戶名和密碼以后,進(jìn)入這這界面,此界面提供了三個(gè)按鈕,代表可供學(xué)生選擇的三個(gè)功能,點(diǎn)擊不同按鈕會(huì)彈出不同界面,此界面不會(huì)消失。學(xué)生個(gè)人信息界面圖-18學(xué)生個(gè)人信息界面說(shuō)明:在學(xué)生點(diǎn)擊“個(gè)人信息”按鈕以后,進(jìn)入這個(gè)界面,此界面展示了該學(xué)生的個(gè)人信息。學(xué)生課程信息界面圖-19學(xué)生課程信息界面說(shuō)明:在學(xué)生點(diǎn)擊了“課程信息”按鈕以后,進(jìn)入這個(gè)界面,此界面展示了該校提供的供學(xué)生選擇的一些課程信息(學(xué)生不能修改這些信息)。當(dāng)學(xué)生需要選擇修的課程時(shí)候,需要先在列表中選擇一行課程的信息,然后在點(diǎn)擊確認(rèn)按鈕,該學(xué)生選擇的課程就會(huì)保存到已選課程列表中。但當(dāng)該學(xué)生一行數(shù)據(jù)都沒(méi)有選擇時(shí)候,會(huì)彈出一個(gè)對(duì)話框,提醒該學(xué)生先選擇一門課程如下圖所示:圖-SEQ圖\*ARABIC\s210提示學(xué)生已選課程界面圖-21學(xué)生已選課程界面說(shuō)明:在學(xué)生點(diǎn)擊“已選課程”按鈕以后,進(jìn)入這個(gè)界面(展示該學(xué)生已選的課程信息),此界面中列表中的課程信息只能查看,不能修改。教師界面教師功能選擇界面圖-22教師功能選擇界面說(shuō)明:在教師輸入正確的用戶名和密碼以后,進(jìn)入這這界面,此界面提供了兩個(gè)按鈕,代表可供教師選擇的兩個(gè)功能,點(diǎn)擊不同按鈕會(huì)彈出不同界面,此界面不會(huì)消失。教師個(gè)人信息界面圖-23教師個(gè)人信息界面說(shuō)明:在教師點(diǎn)擊“個(gè)人信息”按鈕以后,進(jìn)入這個(gè)界面,此界面展示了該教師的個(gè)人信息。教師錄入成績(jī)界面圖-24教師錄入成績(jī)界面說(shuō)明:在教師點(diǎn)擊“錄入成績(jī)”按鈕以后,進(jìn)入這個(gè)界面,此界面展示了選擇該教師所受課程的學(xué)生信息以及課程信息,教師可以在這個(gè)界面對(duì)學(xué)生的成績(jī)進(jìn)行錄入。當(dāng)教師需要對(duì)列表中某個(gè)學(xué)生的某個(gè)課程錄入成績(jī)時(shí)候,需要先選中一行數(shù)據(jù),不然就會(huì)彈回一個(gè)對(duì)話框提醒教師先選中一行數(shù)據(jù)。如下圖所示:圖-25提示當(dāng)教師選擇了一行數(shù)據(jù)以后,還要保證錄入成績(jī)的文本框里面必須有分?jǐn)?shù),不然也會(huì)彈出一個(gè)對(duì)話框,提醒教師錄入成績(jī)時(shí)候必須輸入該學(xué)生該課程的分?jǐn)?shù)。如下圖所示:圖-26提示系統(tǒng)框架圖Logon.javaJPanelLogon.javaJPanel的子類StuPanel.javaJPanel的子類Stunfo.javaJPanel的子類TeaPanel.javaJPanel的子類AdmPanel.javaJPanel的子類ChooseList.javaJPanel的子類CourseList.javaJPanel的子類TeaInfo.javaJPanel的子類MyFrame.javaJFrame的子類圖-27系統(tǒng)框架圖系統(tǒng)源代碼結(jié)構(gòu)圖圖-28系統(tǒng)源代碼結(jié)構(gòu)圖系統(tǒng)實(shí)現(xiàn)(部分源代碼)界面類代碼實(shí)現(xiàn)閃屏類//開(kāi)發(fā)一個(gè)閃屏類classpaintextendsJPanelimplementsRunnable{//可以自動(dòng)刷新PaneThreadt;intx=10;inti=0,j=40,u=10;intk=0,tt=0;Stringgg[]={"系","統(tǒng)","正","在","加","載","請(qǐng)","稍","侯"};Stringshi[]={"安","農(nóng)","大","容","海","內(nèi)","良","師","納","天","下","桃","李","藏","萬(wàn)","卷","書(shū)", "香","育","百","花","千","木","|","|","郭","營(yíng)","工","作","室"};Fontf=newFont("隸書(shū)",Font.PLAIN,18);booleanifok=true;intwidth=180;intheight=0;intdian=0;paint(){t=newThread(this);t.start();}publicvoidrun(){while(true){if(x<=380)repaint();try{Thread.sleep(70);i++;//i=0j=j-6;//j=40u=u+10;//u=10if(tt==3)width=width-20;//tt=0,width=180if(i==4){tt++;if(ifok&&x>120+k*20)k++;//k=0if(k>=gg.length-1)ifok=false;x=x+10;i=0;j=40;u=10;dian++;if(dian>3)dian=0;}}catch(InterruptedExceptione){System.out.println("線程中斷");}}}publicvoidpaintComponent(Graphicsg){Imageimage;image=Toolkit.getDefaultToolkit().getImage("images\\shanping.jpg");//獲得背景圖片g.drawImage(image,0,0,this.getWidth(),200,this);intr=(int)(Math.random()*255);intb=(int)(Math.random()*255);inty=(int)(Math.random()*255);g.setColor(newColor(253,250,250));//Whiteg.fillRect(x,210,380-x,30);g.setColor(newColor(253,250,250));//white//領(lǐng)頭的長(zhǎng)方塊兒if(i>1)g.fillRect(x,235-(j+20)/2,10,j+10);if(j>25)g.setColor(newColor(r,b,y));elseg.setColor(newColor(123,194,252));//lightblue//后面跟著的短方塊兒,10代表閃動(dòng)條的寬度,j代表閃動(dòng)條的高度g.fillRect(x,235-(j+20)/2,10,j);g.setColor(newColor(123,194,252));//lightblueg.drawRect(10,210,380,30);if(x<120){for(intl=0;l<gg.length;l++){g.setColor(newColor(0,0,0));g.drawString(gg[l],120+l*20,230);}}Else{ //當(dāng)加載條加載到文字位置處文字的顏色改變//畫(huà)被進(jìn)度條覆蓋的文字,顏色改變g.setColor(newColor(23,23,230));g.drawString(gg[k],120+k*20,230);//畫(huà)進(jìn)度條沒(méi)有覆蓋的文字,顏色還是不變for(intl=k+1;l<gg.length;l++){g.setColor(newColor(0,0,0));g.drawString(gg[l],120+l*20,230);}}for(intl=0;l<=dian;l++){ if(x>=300){ //當(dāng)進(jìn)度條覆蓋到星點(diǎn)處改變畫(huà)筆顏色 g.setColor(newColor(23,23,230));}else{ //當(dāng)進(jìn)度條覆沒(méi)有蓋到星點(diǎn)處畫(huà)筆顏色為原來(lái)顏色 g.setColor(newColor(0,0,0));}//畫(huà)點(diǎn)點(diǎn)“****”g.drawString("*",300+l*10,235);}//畫(huà)圖片上的文字,逐字寫(xiě)詩(shī)if(tt<3){for(intrr=0;rr<=tt;rr++){g.setColor(newColor(250,0,0));g.drawString(shi[rr],180,60+rr*20);}g.drawString(shi[tt],180,60+tt*20);}if(tt>=3&&tt<8){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);g.setColor(newColor(r,b,y));if(tt<8)for(intrr=3;rr<=tt;rr++)g.drawString(shi[rr],150,rr*20);if(tt>=7)for(intrr=3;rr<8;rr++)g.drawString(shi[rr],150,rr*20);}if(tt>=8&&tt<13){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);for(intrr=3;rr<=7;rr++)g.drawString(shi[rr],150,rr*20);g.setColor(newColor(r,b,y));if(tt<13)for(intrr=8;rr<=tt;rr++)g.drawString(shi[rr],120,rr*20-100);if(tt>=13)for(intrr=8;rr<13;rr++)g.drawString(shi[rr],120,rr*20-100);}if(tt>=13&&tt<18){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);for(intrr=3;rr<=7;rr++)g.drawString(shi[rr],150,rr*20);for(intrr=8;rr<13;rr++)g.drawString(shi[rr],120,rr*20-100);g.setColor(newColor(r,b,y));if(tt<18)for(intrr=13;rr<=tt;rr++)g.drawString(shi[rr],90,rr*20-200);if(tt>=18)for(intrr=13;rr<13;rr++)g.drawString(shi[rr],90,rr*20-200);}if(tt>=18&&tt<23){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);for(intrr=3;rr<=7;rr++)g.drawString(shi[rr],150,rr*20);for(intrr=8;rr<13;rr++)g.drawString(shi[rr],120,rr*20-100);for(intrr=13;rr<18;rr++)g.drawString(shi[rr],90,rr*20-200);g.setColor(newColor(r,b,y));if(tt<23)for(intrr=18;rr<=tt;rr++)g.drawString(shi[rr],60,rr*20-300);if(tt>=23)for(intrr=18;rr<23;rr++)g.drawString(shi[rr],60,rr*20-300);}if(tt>=23&&tt<30){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);for(intrr=3;rr<=7;rr++)g.drawString(shi[rr],150,rr*20);for(intrr=8;rr<13;rr++)g.drawString(shi[rr],120,rr*20-100);for(intrr=13;rr<18;rr++)g.drawString(shi[rr],90,rr*20-200);for(intrr=18;rr<23;rr++)g.drawString(shi[rr],60,rr*20-300);g.setColor(newColor(r,b,y));if(tt<30)for(intrr=23;rr<=tt;rr++)g.drawString(shi[rr],30,rr*20-400);if(tt>=30){tt=0;for(intrr=18;rr<23;rr++)g.drawString(shi[rr],30,rr*20-300);}}if(tt>30){g.setColor(newColor(230,0,0));for(intrr=0;rr<3;rr++)g.drawString(shi[rr],180,60+rr*20);for(intrr=3;rr<=7;rr++)g.drawString(shi[rr],150,rr*20);for(intrr=8;rr<13;rr++)g.drawString(shi[rr],120,rr*20-100);for(intrr=13;rr<18;rr++)g.drawString(shi[rr],90,rr*20-200);for(intrr=18;rr<23;rr++)g.drawString(shi[rr],60,rr*20-300);for(intrr=23;rr<30;rr++)g.drawString(shi[rr],30,rr*20-400);}}}登錄類packageView;/***用戶登錄界面*/importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassUserLoginextendsJDialogimplementsActionListener{ //定義需要的組件 JTextFieldjtf; JPasswordFieldjpw; JPaneljp; JButtonjb1,jb2; publicstaticStringusername; publicstaticvoidmain(String[]args){ UserLoginul=newUserLogin(); } //構(gòu)造函數(shù) publicUserLogin(){ //從JDialog中獲取一個(gè)容器 Containerct=this.getContentPane(); //設(shè)置布局管理器 this.setLayout(null); //創(chuàng)建組件 //用戶名框 jtf=newJTextField(); jtf.setBounds(115,90,100,20);//位置 //設(shè)置下凹的框 jtf.setBorder(BorderFactory.createLoweredBevelBorder()); //密碼框 jpw=newJPasswordField(); jpw.setBounds(115,115,100,20);//位置 jp=newJPanel(); jp.setSize(300,200); //按鈕 //登錄按鈕 jb1=newJButton(newImageIcon("images/denglu.jpg")); jb1.setBounds(70,150,70,30);//位置 jb1.addActionListener(this);//監(jiān)聽(tīng) //取消按鈕 jb2=newJButton(newImageIcon("images/quxiao.jpg")); jb2.setBounds(160,150,70,30);//位置 jb2.addActionListener(this);//監(jiān)聽(tīng) //添加組件 this.add(jtf); this.add(jpw); this.add(jb1); this.add(jb2); //創(chuàng)建一個(gè)BackImage對(duì)象 BackImagebi=newBackImage(); //設(shè)定圖片的位置 bi.setBounds(0,0,300,200); //把圖片添加到JDialog this.add(bi); //設(shè)置窗體屬性 //this.setUndecorated(true); this.setSize(315,236);//大小 intwidth=Toolkit.getDefaultToolkit().getScreenSize().width; intheight=Toolkit.getDefaultToolkit().getScreenSize().height; this.setLocation(width/2-200,height/2-150);//設(shè)置位置 this.setVisible(true); } //創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫(huà)背景圖片 classBackImageextendsJPanel {Imageimage; // image=Toolkit.getDefaultToolkit().getImage("images\\userlogin.jpg");//獲得背景圖片 //要把圖片畫(huà)到JPanle,需要重寫(xiě)一個(gè)Paint方法 publicvoidpaint(Graphicsg)//此處的paint中的p是小寫(xiě), { image=Toolkit.getDefaultToolkit().getImage("images\\userlogin.jpg");//獲得背景圖片 g.drawImage(image,0,0,300,200,this);}}管理員功能界面(教師界面類和學(xué)生界面類與此類似)packageView;/***管理員登陸進(jìn)去以后的界面*選擇“學(xué)生信息管理”還是“教師信息管理”*/importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importModel.StuModel;publicclassAdmChooseextendsJFrameimplementsActionListener{ //定義需要的組件 JButtonjb1,jb2; publicAdmChoose(){ /* *創(chuàng)建組件 */ //設(shè)置空布局 this.setLayout(null); //創(chuàng)建按鈕,設(shè)置位置,注冊(cè)監(jiān)聽(tīng) jb1=newJButton(newImageIcon("images/stuInfo.png")); jb1.setBounds(60,60,145,37); jb1.addActionListener(this); jb2=newJButton(newImageIcon("images/teaInfo.png")); jb2.setBounds(60,110,145,37); jb2.addActionListener(this); this.add(jb1); this.add(jb2); //背景面板 BackImagebi=newBackImage(); bi.setBounds(0,0,320,220); this.add(bi); //設(shè)置窗體屬性 this.setTitle("管理員功能界面"); this.setSize(335,260); this.setLocation(0,0); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } //創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫(huà)背景圖片 classBackImageextendsJPanel{ Imageimage; //要把圖片畫(huà)到JPanle,需要重寫(xiě)一個(gè)Paint方法 publicvoidpaint(Graphicsg){//獲得背景圖片image=Toolkit.getDefaultToolkit().getImage("images/Achoose.jpg"); g.drawImage(image,0,0,320,220,this);} //實(shí)現(xiàn)監(jiān)聽(tīng)機(jī)制 publicvoidactionPerformed(ActionEvente){ //判斷是哪個(gè)按鈕被點(diǎn)擊 if(e.getSource()==jb1){ //如果是“學(xué)生信息管理”按鈕被點(diǎn)擊 //創(chuàng)建學(xué)生信息管理界面的實(shí)例 StuInfoMans=newStuInfoMan(this,"學(xué)生信息管理",true); } elseif(e.getSource()==jb2){ //如果是“教師信息管理”按鈕被點(diǎn)擊 //創(chuàng)建教師信息管理界面的實(shí)例 TeaInfoMans=newTeaInfoMan(this,"教師信息管理",true);}}}學(xué)生選課界面實(shí)現(xiàn)packageView;/***學(xué)生在點(diǎn)擊課程信息表以后進(jìn)入這個(gè)界面* 顯示的為學(xué)院提供的課程信息*/importjava.awt.*;importjavax.swing.*;importDb.StuSqlHelper;importModel.ClassModel;importView.StuInfo.BackImage;importjava.awt.color.CMMException;importjava.awt.event.*;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassClassInfoextendsJDialogimplementsActionListener{ //定義組件 JButtonjb;//確認(rèn)按鈕 JTablejt;//表 ClassModelcm;//課程信息表模型 JScrollPanejsp;//滾動(dòng)面板 publicClassInfo(Frameowner,Stringtitle,booleanmodal){ super(owner,title,modal); //設(shè)置布局管理器為空 this.setLayout(null); //背景面板 BackImagebi=newBackImage(); bi.setBounds(0,0,800,400); this.add(bi); //創(chuàng)建表,課程信息模型,設(shè)置位置 cm=newClassModel(); jt=newJTable(cm); jsp=newJScrollPane(jt); jsp.setBounds(46,98,565,210); this.add(jsp); //創(chuàng)建確認(rèn)按鈕,設(shè)置位置注冊(cè)監(jiān)聽(tīng) jb=newJButton(newImageIcon("images/ClassInfoqueren.jpg")); jb.setBounds(664,130,100,40); jb.addActionListener(this); this.add(jb); //設(shè)置窗體屬性 this.setSize(816,438); this.setLocation(335,0); this.setVisible(true); } //創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫(huà)背景圖片 classBackImageextendsJPanel { Imageimage; //要把圖片畫(huà)到JPanle,需要重寫(xiě)一個(gè)Paint方法 publicvoidpaint(Graphicsg){ //獲得背景圖片 image=Toolkit.getDefaultToolkit() .getImage("images/ClassInfo.jpg"); g.drawImage(image,0,0,800,400,this); } } @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==jb){ //獲取表中被點(diǎn)擊選中的一行 introw=jt.getSelectedRow(); //如果一行沒(méi)有選中,彈出提醒框 if(row==-1){ JOptionPane.showMessageDialog(this,"請(qǐng)先選中你要選修的課程!"); } else{ //獲取被選中的那行的第一列數(shù)據(jù)(學(xué)生編號(hào)) Stringclassno=jt.getValueAt(row,0).toString(); //編寫(xiě)一個(gè)Sql語(yǔ)句查詢課程信息表的一行數(shù)據(jù) Stringsql1="select*fromclasswhereclassno=?"; Stringsql2="select*fromstuwherestuno=?"; ResultSetrs1=StuSqlHelper.getsingleInfo(sql1,classno); ResultSetrs2=StuSqlHelper.getsingleInfo(sql2,UserLogin.username); try{ rs1.next(); rs2.next(); Stringsql3="insertintoscorevalues" +"(?,?,?,?,?,?,?,?,?,?);"; String[]info={ rs1.getString(1),rs1.getString(2), rs1.getString(3),rs1.getString(4), rs1.getString(5),rs1.getString(6), rs1.getString(7),rs2.getString(1), rs2.getString(2),"" }; StuSqlHelper.UpStuInfo(sql3,info); }catch(Exceptione2){ } } } }}教師錄入成績(jī)代碼實(shí)現(xiàn)packageView;/***教師在點(diǎn)擊錄入成績(jī)按鈕以后進(jìn)入這個(gè)界面*此界面提供教師為選擇該教師的學(xué)生錄入成績(jī)信息*/importjavax.swing.*;importDb.StuSqlHelper;importModel.CheckedModel;importjava.awt.*;importjava.awt.event.*;importjava.sql.*;publicclassInsertInfoextendsJDialogimplementsActionListener{ //定義組件 JButtonjb;//錄入按鈕 JTablejt;//表 CheckedModelcm;//課程信息表模型 JScrollPanejsp;//滾動(dòng)面板 JTextFieldjtf; publicInsertInfo(Frameowner,Stringtitle,booleanmodal){ super(owner,title,modal); //設(shè)置布局管理器為空 this.setLayout(null); //背景面板 BackImagebi=newBackImage(); bi.setBounds(0,0,800,400); this.add(bi); //創(chuàng)建表,課程信息模型,設(shè)置位置 cm=newCheckedModel(UserLogin.username); jt=newJTable(cm); jsp=newJScrollPane(jt); jsp.setBounds(86,95,630,210); this.add(jsp); //創(chuàng)建輸入框,設(shè)置位置,添加 jtf=newJTextField(); jtf.setBounds(190,362,168,30); this.add(jtf); //創(chuàng)建確認(rèn)按鈕,設(shè)置位置注冊(cè)監(jiān)聽(tīng) jb=newJButton(newImageIcon("images/InsertInfoqueren.jpg")); jb.setBounds(380,362,168,30); jb.addActionListener(this); this.add(jb); //設(shè)置窗體屬性 this.setSize(816,438); this.setLocation(335,0); this.setVisible(true); } //創(chuàng)建一個(gè)內(nèi)部類,并繼承JPanle,用于畫(huà)背景圖片 classBackImageextendsJPanel { Imageimage; //要把圖片畫(huà)到JPanle,需要重寫(xiě)一個(gè)Paint方法 publicvoidpaint(Graphicsg){ //獲得背景圖片 image=Toolkit.getDefaultToolkit() .getImage("images/InsertInfo.jpg"); g.drawImage(image,0,0,800,400,this); } } //實(shí)現(xiàn)監(jiān)聽(tīng)機(jī)制 publicvoidactionPerformed(ActionEvente){ if(e.getSource()==jb){ //獲取表中被點(diǎn)擊選中的一行 introw=jt.getSelectedRow(); //如果一行沒(méi)有選中,彈出提醒框 if(row==-1){ JOptionPane.showMessageDialog(this,"請(qǐng)先選中你要錄入成績(jī)的課程!"); } else{ if(jtf.getText().equals("")){ JOptionPane.showMessageDialog(this,"請(qǐng)先填入你要錄入成績(jī)!"); } elseif(!jtf.getText().equals("")){ //獲取被選中的那行的第一列數(shù)據(jù)(學(xué)生編號(hào)) Stringstuno=jt.getValueAt(row,0).toString(); Stringclassno=jt.getValueAt(row,3).toString(); Stringscore=jtf.getText(); //編寫(xiě)一個(gè)Sql語(yǔ)句查詢課程信息表的一行數(shù)據(jù) Stringsql="updatescoresetscorenum=?" +"whereclassno=?andstuno=?"; try{ String[]info={score,classno,stuno}; StuSqlHelper.UpStuInfo(sql,info); }catch(Exceptione2){} //更新數(shù)據(jù) cm=newCheckedModel(UserLogin.username); jt.setModel(cm); jtf.setText(""); } } } } }模型層學(xué)生模型packageModel;/***學(xué)生表模型**/importjava.awt.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.AbstractTableModel;importDb.MDB;publicclassStuModelextendsAbstractTableModel{ Vectorrow; Vectorcol; //定義操作數(shù)據(jù)庫(kù)的東西 Connectioncon=null; PreparedStatementps=null; ResultSetrs=null; //創(chuàng)建一個(gè)方法,用于構(gòu)造方法中獲取數(shù)據(jù),避免代碼冗余 publicvoidinit(Stringsql){ //判斷傳過(guò)來(lái)的SQL語(yǔ)句 if(sql.equals("")){ sql="select*fromstu"; } try{ con=MDB.getConnection(); //創(chuàng)建一個(gè)Statement ps=con.prepareStatement(sql); //執(zhí)行sql語(yǔ)句,加過(guò)用ResultSet接收 rs=ps.executeQuery(); }catch(Exceptione){} //列名 col=newVector(); col.add("學(xué)生學(xué)號(hào)"); col.add("學(xué)生姓名"); col.add("學(xué)生性別"); col.add("學(xué)生生日"); col.add("所在班級(jí)"); //行數(shù)據(jù) row=newVector(); //循環(huán)遍歷每個(gè)值 try{ while(rs.next()){ Vectorhang=newVector(); hang.add(rs.getString(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getString(4)); hang.add(rs.getString(5)); row.add(hang); } }catch(SQLExceptione){ e.printStackTrace(); } } //通過(guò)傳遞SQL語(yǔ)句來(lái)獲得數(shù)據(jù)模型 publicStuModel(Stringsql){ this.init(sql); } //構(gòu)造函數(shù):用來(lái)初始化數(shù)據(jù)模型 publicStuModel(){ this.init(""); } @Override publicStringgetColumnName(intcolumn){ return(String)this.col.get(column); } //得到共有多少行 publicintgetRowCount(){ //TODOAuto-generatedmethodstub returnthis.row.size(); } //得到共有多少列 publicintgetColumnCount(){ returnthis.col.size(); } //得到某行某列的數(shù)據(jù) publicObjectgetValueAt(introwIndex,intcolumnIndex){ return((Vector)this.row.get(rowIndex)).get(columnIndex); }}教師模型packageModel;/***這是一個(gè)教師信息表模型**/importjava.awt.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.AbstractTableModel;importDb.MDB;publicclassTeaModelextendsAbstractTableModel{ Vectorrow; Vectorcol; //定義操作數(shù)據(jù)庫(kù)的東西 Connectioncon=null; PreparedStatementps=null; ResultSetrs=null; //創(chuàng)建一個(gè)方法,用于構(gòu)造方法中獲取數(shù)據(jù),避免代碼冗余 publicvoidinit(Stringsql){ //判斷傳過(guò)來(lái)的SQL語(yǔ)句 if(sql.equals("")){ sql="select*fromtea"; } try{ con=MDB.getConnection(); //創(chuàng)建一個(gè)Statement ps=con.prepareStatement(sql); //執(zhí)行sql語(yǔ)句,加過(guò)用ResultSet接收 rs=ps.executeQuery(); }catch(Exceptione){} //列名 col=newVector(); col.add("教師編號(hào)"); col.add("教師姓名"); col.add("教師性別"); col.add("教師生日"); col.add("教師職稱"); col.add("所在院系"); //行數(shù)據(jù) row=newVector(); //循環(huán)遍歷每個(gè)值 try{ while(rs.next()){ Vectorhang=newVector(); hang.add(rs.getString(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getString(4)); hang.add(rs.getString(5)); hang.add(rs.getString(6)); row.add(hang); } }catch(SQLExceptione){ e.printStackTrace(); } } //通過(guò)傳遞SQL語(yǔ)句來(lái)獲得數(shù)據(jù)模型 publicTeaModel(Stringsql){ this.init(sql); } //構(gòu)造函數(shù):用來(lái)初始化數(shù)據(jù)模型 publicTeaModel(){ this.init(""); } @Override publicStringgetColumnName(intcolumn){ return(String)this.col.get(column); } //得到共有多少行 publicintgetRowCount(){ //TODOAuto-generatedmethodstub returnthis.row.size(); } //得到共有多少列 publicintgetColumnCount(){ returnthis.col.size(); } //得到某行某列的數(shù)據(jù) publicObjectgetValueAt(introwIndex,intcolumnIndex){ return((Vector)this.row.get(rowIndex)).get(columnIndex); }}課程模型packageModel;/***課程表模型*/importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.Vector;importjavax.swing.table.AbstractTableModel;importDb.MDB;publicclassClassModelextendsAbstractTableModel{ Vectorrow; Vectorcol; //定義操作數(shù)據(jù)庫(kù)的東西 Connectioncon=null; PreparedStatementps=null; ResultSetrs=null; //構(gòu)造函數(shù):用來(lái)初始化數(shù)據(jù)模型 publicClassModel(){ Stringsql="select*fromclass"; try{ con=MDB.getConnection(); //創(chuàng)建一個(gè)Statement ps=con.prepareStatement(sql); //執(zhí)行sql語(yǔ)句,加過(guò)用ResultSet接收 rs=ps.executeQuery(); }catch(Exceptione){} //列名 col=newVector(); col.add("課程編號(hào)"); col.add("課程名稱"); col.add("課程學(xué)分"); col.add("授課教師"); col.add("教師編號(hào)"); col.add("教師職稱"); col.add("上課地點(diǎn)"); //行數(shù)據(jù) row=newVector(); //循環(huán)遍歷每個(gè)值 try{ while(rs.next()){ Vectorhang=newVector(); hang.add(rs.getString(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getString(4)); hang.add(rs.getString(5)); hang.add(rs.getString(6)); hang.add(rs.getString(7)); row.add(hang); } }catch(SQLExceptione){ e.printStackTrace(); } } //獲取列名 publicStringgetColumnName(intcolumn){ return(String)this.col.get(column); } //得到共有多少行 publicintgetRowCount(){ //TODOAuto-generatedmethodstub returnthis.row.size(); } //得到共有多少列 publicintgetColumnCount(){ returnthis.col.size(); } //得到某行某列的數(shù)據(jù) publicObjectgetValueAt(introwIndex,intcolumnIndex){ return((Vector)this.row.get(rowIndex)).get(columnIndex); }連接操作數(shù)據(jù)庫(kù)工具層連接數(shù)據(jù)庫(kù)類packageDb;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/***創(chuàng)建一個(gè)連接數(shù)據(jù)庫(kù)的類*連接的是SQLServer2000*/publicclassMDB{ //定義一個(gè)方法獲取Connection publicstaticConnectiongetConnection(){ Connectioncon=null; try{ //1.加載驅(qū)動(dòng) Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //編寫(xiě)字符串表示地址,用戶名,密碼 Stringurl="jdbc:microsoft:sqlserver://:1433;databaseName=master"; Stringuser="sa"; Stringpassword=""; //2.獲取一個(gè)連接Connection con=DriverManager.getConnection(url,user,password); }catch(Exceptione){ e.printStackTrace(); } returncon; } //定義一個(gè)方法關(guān)閉Connection publicstaticvoidcloseConnection(Connectioncon){ try{ if(con!=null) con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } //定義一個(gè)方法關(guān)閉Statement publicstaticvoidcloseStatement(Statementsta){ try{ if(sta!=null) sta.close(); }catch(SQLExceptione){ e.printStackTrace(); } } //定義一個(gè)方法關(guān)閉ResultSet publicstaticvoidcloseResultSet(ResultSetrst){ try{ if(rst!=null) rst.close(); }catch(SQLExceptione){ e.printStackTrace(); } } //定義一個(gè)方法關(guān)閉Connection,Statement,ResultSet publicstaticvoidclose(Connectioncon,Statementsta,ResultSetrst){ closeResultSet(rst); closeStatement(sta); closeConnection(con); } //定義一個(gè)方法關(guān)閉Connection,Statement publicstaticvoidclose(Connectioncon,Statementsta){ closeStatement(sta); closeConnection(con); } }操作數(shù)據(jù)庫(kù)類packageDb;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.s

溫馨提示

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