基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc_第1頁
基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc_第2頁
基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc_第3頁
基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc_第4頁
基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc文檔可直接使用可編輯,歡迎下載

基于java和mysql的學生基本信息管理系統(tǒng)基于java和mysql的學生信息管理系統(tǒng)【實用文檔】doc文檔可直接使用可編輯,歡迎下載1系統(tǒng)需求分析1。1功能需求分析和功能設計根據(jù)學生信息管理綜合分析,便出于方便管理考慮,將學生信息管理系統(tǒng)的功能總結起來,共需要實現(xiàn)以下幾個方面功能:學生信息的增加:管理員可以在數(shù)據(jù)庫中增加學生信息。學生信息的修改:修改數(shù)據(jù)庫中已經存在的學生信息。學生信息的刪除:刪除數(shù)據(jù)庫中的學生信息.學生信息的查詢:可以對學生信息進行查詢操作,按學號、姓名、年齡來進行查詢和排序。學生信息進行排序:按學號、姓名、年齡來進行排序。學生信息的導入和導出:將數(shù)據(jù)從數(shù)據(jù)庫中導出到TXT、Word、Excel。2學生信息管理系統(tǒng)設計2.1數(shù)據(jù)模型分析與設計本項目的關系數(shù)據(jù)模型的數(shù)據(jù)結構可分為兩個表來表示:學生信息表(Person)、用戶信息表(UserInfo)。學生信息表用于記錄學生的基本信息,如表2-1;用戶信息表用于記錄系統(tǒng)用戶的基本信息,如表2-2,這兩個表對應的E—R圖分別是:圖3。1學生信息E-R圖;圖3.2課程信息E-R圖;圖3。3學生選課E—R圖;如下圖表2-1學生信息表(Person)名稱字段名稱數(shù)據(jù)類型主鍵非空學號SnoVarcharYesYes姓名SnameVarcharNoYes性別SsexintNoNo年齡SageintNOYes籍貫ShomeVarcharNoNo家庭住址SaddressVarcharNoNo聯(lián)系方式StelephoneVarcharNoNo表2-2用戶信息表(UserInfo)名稱字段名稱數(shù)據(jù)類型主鍵非空用戶編號idIntYesYes用戶名UnameVarchar(10)NoYes密碼UpasswordVarchar(16)NoYes學生學生年齡學號學生姓名性別聯(lián)系方式家庭住址籍貫圖2.1學生信息E-R圖用戶用戶用戶編號用戶名密碼圖2.2用戶信息E-R圖2.2結構設計與結構功能圖2。2.1結構設計根據(jù)對系統(tǒng)進行需求分析,本系統(tǒng)將分為4個模塊:●學生管理管理學生基本信息,包括個人信息的添加、修改、刪除、查詢、按各種方式進行排序以及數(shù)據(jù)的導入的導出功能.●用戶管理管理用戶的基本信息,包括用戶的添加、密碼修改和用戶刪除.2.2.2功能結構圖用戶管理用戶管理增加修改刪除學生管理添加刪除修改信息查詢按姓名查詢按學號查詢按年齡查詢學生管理系統(tǒng)圖2.2.2系統(tǒng)結構功能圖3、系統(tǒng)實現(xiàn)該系統(tǒng)由6個模塊構成,包括學生管理系統(tǒng)主界面模塊、增加學生信息模塊、查詢學生信息模塊、修改學生信息模塊、刪除學生信息模塊和密碼變更模塊.下面分別加以敘述:學生管理系統(tǒng)主界面模塊學生管理系統(tǒng)主界面模塊包括LoginFrame.java和MainFrame。java兩個文件.LoginFrame是學生管理系統(tǒng)的登錄對話框(如圖3.1所示),登錄成功后生成了學生管理系統(tǒng)的界面,MainFrame類繼承自JFrame類,實現(xiàn)了ActionListener接口,他有一個帶參數(shù)的構造方法MainFrame(LoginFramelf),用來關閉LoginFrame的實例。MainFrame類將所有功能集中到菜單欄中,并通過調用其他模塊來實現(xiàn)學生管理系統(tǒng)的各個功能,如圖3。2所示。圖3。1學生管理系統(tǒng)登錄界面圖3.2學生管理系統(tǒng)登錄界面學生信息添加模塊學生信添加模塊主要由InsertStu。java和數(shù)據(jù)庫的接口文件PersonDAOimpl組成。其中InsertStu是StuModel的子類,StuModel主要是生成界面,InsertStu接收用戶輸入,而PersonDAOimpl執(zhí)行數(shù)據(jù)庫的相關操作,這樣使整個過程清楚明了。是StuMode該模塊的流程圖如下圖3。3所示,界面如3.4所示:圖3.3添加學生信息流程圖圖3。4學添加學生信息界面查詢學生信息模塊課程信息管理模塊主要由Search。java、PersonDAOimpl.java、TableFrame.java、這3個文件組成。Search.java負責用戶查詢數(shù)據(jù)的接收,PersonDAOimpl。java負責數(shù)據(jù)庫查詢操作,TableFrame.java負責數(shù)據(jù)的顯示工作.流程圖如圖3.5所示:圖3.5學生信息查詢模塊流程圖修改學生信息模塊修改學生信息模塊主要由UpdateDialog。java、UpdateStu、PersonDAOimpl.java這3個文件組成,其中,UpdateDialog負責數(shù)據(jù)的接收,UpdateStu顯示修改界面,PersonDAOimpl負責數(shù)據(jù)層的操作.流程圖、界面如下:刪除學生信息模塊這個模塊主要是由DelDialog.java、Delete.java、PersonDAOimpl。java組成。其中,DelDialog負責數(shù)據(jù)的接收,Delete顯示修改界面,PersonDAOimpl負責數(shù)據(jù)層的操作.流程圖、界面如下:4系統(tǒng)調試與測試4.1系統(tǒng)功能測試功能測試主要是測試程序模塊是否實現(xiàn)了設計中所要求的功能。功能測試中需要注意的有:(1)查詢功能中,有按單一查詢條件進行查詢的,也有按多個查詢條件組合查詢的。這里要注意的多個查詢條件之間的關系。(2)錄入功能中,需要注意的是前臺設置的數(shù)值長度是否大于后臺數(shù)值長度,以及前臺和后臺的數(shù)據(jù)結構是否相符,很多時候錄入功能無法實現(xiàn)是由于這些原因.還有就是必須錄入的字段的設置時候有誤。(3)測試刪除功能中需要注意的是單擊"刪除"按鈕后,一般會出現(xiàn)提示信息,詢問是否確定刪除。通常情況下,我們單擊”確認"按鈕查看信息是否被刪除掉了,而忽略了單擊"取消”按鈕后程序的反應:這時有可能的是沒有刪除,還有一種可能是即便單擊了”取消"按鈕,也一樣刪除了數(shù)據(jù)。另外,在刪除多條記錄的時候,要注意連續(xù)選中的幾條記錄是否真正都被刪除掉了,即如果再按照這種查詢方式查詢,時候還能查詢出來。有的時候需要在數(shù)據(jù)庫中設立一個標志位,而不是真正的物理刪除。所以在下一次查詢中,可能還會被查詢出來,這主要是因為在查詢條件中沒有將標志考慮在內。(4)關于修改功能的測試主要是看修改確認后是否數(shù)據(jù)真正已被修改了。這是最基本的功能,需要注意的是看是否能把不應該修改的數(shù)據(jù)也修改成功了.4。2系統(tǒng)實施發(fā)布在編碼結束以后,本人進行了如下測試:界面測試、功能測試、需求測試、性能測試。通過這幾項的測試,基本可以保證系統(tǒng)的正常運行。4.3系統(tǒng)調試常見錯誤1.NullPointerException異常一般是對一個為NULL值的變量進行操作引起的。為避免這種異常,最好在對變量操作之前檢查,看它是否為NULL值.2.SQLException異常一般是由于SQL語句不正確引起的。為避免這種異常,最好在使用SQL語句的程序中捕獲此SQL異常。3.NumberFormatException異常這是由于數(shù)字的格式錯誤而出現(xiàn)的例外.為了避免出現(xiàn)此類錯誤,一般必須保證數(shù)據(jù)格式輸入正確。4.數(shù)據(jù)庫連接垃圾回收在實際的開發(fā)應用中,通常出現(xiàn)某一個對象未能關閉的情況,為了防止這種情況的發(fā)生,可以在有關對數(shù)據(jù)庫操作的Java類文件中增加自動回收函數(shù),在JVM自動地回收對象時,取出使用的連接對象,判斷是否關閉,如果沒有關閉則關掉。代碼如下所示:protectedvoidfinalize(){try{If(getConn()?。絥ull&&!getConn().isClosed()){rs.cloes();stm.close();conn。close();}}catch(SQLExceptione){}}軟件學院課程設計報告書課程名稱java課程設計設計題目學生信息管理系統(tǒng)專業(yè)班級軟件工程09-10班學號0920011023姓名趙壬冰指導教師2011年6月目錄TOC\o"1—4"\h\uHYPERLINK\l_Toc255401設計時間PAGEREF_Toc255403HYPERLINK\l_Toc254412設計目的PAGEREF_Toc2544133設計任務PAGEREF_Toc108113HYPERLINK\l_Toc269523.1任務說明PAGEREF_Toc269523HYPERLINK\l_Toc8313。2系統(tǒng)目標PAGEREF_Toc83143.2使用范圍PAGEREF_Toc149004HYPERLINK\l_Toc102963。3功能要求PAGEREF_Toc1029644設計內容PAGEREF_Toc3074HYPERLINK\l_Toc148784。1界面構建1487844。2詳細設計PAGEREF_Toc3199254。2。1模塊設計PAGEREF_Toc954。2。2數(shù)據(jù)庫設計(Access)PAGEREF_Toc57965HYPERLINK\l_Toc110994.2。3運行調試PAGEREF_Toc110996HYPERLINK\l_Toc316934。2.4主要源代碼PAGEREF_Toc3169310HYPERLINK\l_Toc220515總結與展望PAGEREF_Toc2205110參考文獻PAGEREF_Toc15826111設計時間2011.6.112設計目的本程序用于用戶對少量學生信息進行簡單的管理,本程序針對于對安全系數(shù)要求不高,操作不是很復雜的小型客戶開發(fā)。本程序可以實現(xiàn)對學生信息的錄入、查詢、修改、刪除等操作,同時支持查看所有學生信息,功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。同時,本程序對系統(tǒng)要求配置較低,運行速度快,而卻對數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的access數(shù)據(jù)庫(。accdb)進行數(shù)據(jù)存儲,該數(shù)據(jù)庫可實現(xiàn)關系較為簡單的數(shù)據(jù)管理.3設計任務3。1任務說明設計一個簡單學生個人信息管理系統(tǒng),該系統(tǒng)具有錄入,查詢,修改三項基本功能。要求如下:(1)具有簡單的錄入,查詢和修改功能。(2)修改學生信息必須輸入學號,然后對姓名、性別和專業(yè)等修改;(3)使用文件存儲數(shù)據(jù).(也可用數(shù)據(jù)庫)(4)學生個人信息必須包括:學號、姓名、性別、出生日期、身份證號、專業(yè)、班級自我簡介,其余可自行豐富.(5)具有對姓名,出生日期和身份證號進行簡單校驗的功能.3.2系統(tǒng)目標軟件開發(fā)的意圖便于用戶對學生的管理,方便查看學生的情況。如用戶對學生基本信息進行錄入、查詢、修改、刪除等。3。2使用范圍本系統(tǒng)僅針對用戶對少量學生進行信息管理。3.3功能要求1錄入學生基本信息的功能2查詢學生基本信息的功能3修改學生基本信息的功能4刪除學生基本信息的功能5顯示所有學生信息的功能4設計內容4.1界面構建1、為了便于各種操作,軟件采用多窗口的模式。用戶可在不同窗口進行相應操作(錄入、查詢、修改、刪除、顯示所有學生省信息)。2、主窗口是用戶進行各種操作的平臺,具體操作在各個獨立功能窗口中完成。3、主窗口的主要功能位于菜單中,菜單為進入各個功能窗口的唯一通道。4、當用戶在進行個別錄入、刪除或錯誤輸入操作時,會彈出相應對話框提示用戶。如當錄入成功或刪除成功,彈出成功以及相應的簡明信息提示當,當錄入、刪除失敗以及輸入不當是,彈出錯誤以及簡單的錯誤原因提示用戶重新操作。5、界面布局盡量合理,各組件位置分布均勻美觀。4.2詳細設計登錄4。2。1模塊設計登錄nono密碼正確密碼正確yesyes進入操作界面進入操作界面查改刪增 查改刪增 4。2。2數(shù)據(jù)庫設計(Access)圖a.學生信息表圖b。管理員表4.2。3運行調試圖1.登錄界面圖2。操作界面圖3。添加學生信息圖4。刪除學生信息圖5.修改學生信息圖6。查找學生信息圖7。注冊新用戶圖8.刪除用戶4.2.4主要源代碼importjava.awt.*;importjavax。swing。*;importjava。awt.event.*;importjavax.swing.border.*;importjavax.swing。JOptionPane;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax。swing.table.DefaultTableModel;importjavax。swing.table。TableColumn;importjava。sql.*;importjava。awt.GridLayout;classmyStudent{publicmyStudent(){}publicstaticvoidmain(String[]args){loginFramelf=newloginFrame();lf.setVisible(true);lf.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}classmainFrameextendsJFrameimplementsActionListener{MenuBarmyMenuBar=newMenuBar();MenumyMenuFile,myMenuEdit,myMenuUser,myMenuAbout;MenuItemmiNew,miOpen,miSave,miSaveAs,miExit;MenuItemmiAdd,miEdit,miDel,miFind,miShow,miUser,miAbout;publicJTabletable=newJTable();Iconbackground_icon=newImageIcon("pct。jpg");JLabelbackground_Label=newJLabel(background_icon);publicDefaultTableModelmm;publicmainFrame(){myMenuFile=newMenu("文件");miNew=newMenuItem("新建");miOpen=newMenuItem("打開");miSave=newMenuItem("保存");miExit=newMenuItem("退出");//miNew。enable(false);//miOpen.enable(false);//miSave。enable(false);//myMenuFile。add(miNew);//myMenuFile.add(miOpen);//myMenuFile.add(miSave);myMenuFile.add(miExit);myMenuEdit=newMenu("數(shù)據(jù)編輯”);miFind=newMenuItem("查找數(shù)據(jù)”);miAdd=newMenuItem("添加數(shù)據(jù)");miEdit=newMenuItem("修改數(shù)據(jù)");miDel=newMenuItem("刪除數(shù)據(jù)”);miShow=newMenuItem(”全部顯示");myMenuEdit.add(miFind);myMenuEdit.add(miAdd);myMenuEdit.add(miEdit);myMenuEdit.add(miDel);myMenuEdit.add(miShow);myMenuUser=newMenu("用戶”);miUser=newMenuItem("編輯用戶”);myMenuUser.add(miUser);myMenuAbout=newMenu("我的課程設計");miAbout=newMenuItem(”課程設計說明");myMenuAbout.add(miAbout);myMenuBar。add(myMenuFile);myMenuBar。add(myMenuEdit);myMenuBar.add(myMenuUser);myMenuBar。add(myMenuAbout);String[]col={”學號”,"姓名",”性別","民族",”年齡",”年級",”班級”,"專業(yè)”};//創(chuàng)建屬性列名mm=newDefaultTableModel(col,0);table.setModel(mm);JScrollPanetableScrollPane=newJScrollPane(table);this.setMenuBar(myMenuBar);this.add(tableScrollPane);miExit.addActionListener(this);miFind。addActionListener(this);miAdd.addActionListener(this);miEdit.addActionListener(this);miDel.addActionListener(this);miShow.addActionListener(this);miUser.addActionListener(this);miAbout。addActionListener(this);}classmyConnection{ResultSetre;Stringstrurl=”jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=學生管理數(shù)據(jù)庫.mdb";publicmyConnection(){}publicResultSetgetResult(Stringsql){try{Class.forName(”sun。jdbc.odbc.JdbcOdbcDriver");Connectionconn=DriverManager.getConnection(strurl);Statementstmt=conn.createStatement(ResultSet。TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetre=stmt。executeQuery(sql);returnre;}cat(yī)ch(Exceptione){System.out.println(”getResult——--——"+e。toString());returnnull;}}classaddFrameextendsJDialogimplementsActionListener{publicstaticfinalintWIDTH=400;publicstaticfinalintHEIGHT=400;JLabel學號1,姓名1,性別1,民族1,年齡1,年級1,班級1,專業(yè)1;JTextField學號,姓名,性別,民族,年齡,年級,班級,專業(yè);JButtonb;JPanelp;mainFramemf;classeditFrameextendsJDialogimplementsActionListener{publicstaticfinalintWIDTH=400;publicstaticfinalintHEIGHT=400;JLabel學號1,姓名1,性別1,民族1,年齡1,年級1,班級1,專業(yè)1;JTextField學號,姓名,性別,民族,年齡,年級,班級,專業(yè);JButtonb;JPanelp;mainFramemf;classfindFrameextendsJDialogimplementsActionListener{mainFramemf;JPanelp;JComboBoxc;JTextFieldt;JButtonb;JButtonfAll;Stringsql="select*fromstudent";String[]colStr={"學號”,”姓名","性別”,”民族”,"年齡","年級”,”班級”,”專業(yè)"};publicfindFrame(mainFramemmf){mf=mmf;p=newJPanel();c=newJComboBox(colStr);t=newJTextField(10);b=newJButton(”查找”);fAll=newJButton("全部顯示");b。addActionListener(this);fAll。addActionListener(this);p。add(newJLabel("選擇”));p。add(c);p.add(newJLabel("查找內容”));p。add(t);p.add(b);p。add(fAll);this。add(p);this.setTitle("查找");this.setSize(450,80);}classaboutFrameextendsJDialog{aboutFrame(){JPanelp1=newJPanel();p1.add(newJLabel("學生信息管理系統(tǒng)"));p1。add(newJLabel("趙壬冰0920011023"));p1。add(newJLabel(”遼寧工程技術大學”));p1。add(newJLabel("軟件工程09—10”));p1.setLayout(newGridLayout(4,1,5,5));this.add(p1);this。setTitle(”關于我");this.setSize(300,200);}}classuserFrameextendsJFrameimplementsActionListener{JTextFielduser,pass;JButtonadd,del;JTablet;JPanelp1,p2,p3,p4,p5;DefaultTableModelm;publicuserFrame(){p1=newJPanel();p2=newJPanel();p3=newJPanel();p4=newJPanel();p5=newJPanel();user=newJTextField(8);pass=newJTextField(8);add=newJButton(”添加”);del=newJButton("刪除");String[]col={"用戶名”,”密碼"};m=newDefaultTableModel(col,0);t=newJTable();t.setModel(m);JScrollPanesp=newJScrollPane(t);p1。add(newJLabel(”用戶名"));p1.add(user);p1。add(newJLabel("密碼”));p1.add(pass);p1.add(add);p2.add(sp);p3.add(del);add.addActionListener(this);del。addActionListener(this);myConnectionconn=newmyConnection();ResultSetrs;rs=conn.getResult(”select*from管理員”);if(rs!=null){try{//m.setRowCount(0);//table.setModel(mm);while(rs。next()){String用戶名=rs.getString(”用戶名”);String密碼=rs.getString(”密碼”);String[]cloumns={用戶名,密碼};m.addRow(cloumns);}t.setModel(m);}cat(yī)ch(Exceptione){System.out.println(e.toString());}}this.add(p1,BorderLayout.NORTH);this.add(p2,BorderLayout.CENTER);this。add(p3,BorderLayout.SOUTH);this。add(p4,BorderLayout。WEST);this.add(p5,BorderLayout.EAST);this.setTitle("用戶管理”);this.setSize(600,400);}classloginFrameextendsJDialogimplementsActionListener{JPanelp;JTextFielduser,pass;JButtonlogin,cancel;publicloginFrame(){p=newJPanel();user=newJTextField(10);pass=newJTextField(10);login=newJButton("登錄”);cancel=newJButton("退出”);login.addActionListener(this);cancel.addActionListener(this);Iconbackground_icon=newImageIcon("pct.jpg”);JLabelbackground_Label=newJLabel(background_icon);p.add(background_Label);p.add(newJLabel("賬號"));p。add(user);p。add(newJLabel("密碼”));p.add(pass);p。add(login);p.add(cancel);this。add(p);this.setTitle("系統(tǒng)登錄”);this.setSize(360,260);}5總結與展望做課設讓我對java有了新的認識,首先我接觸了很多上課見過見過但沒有實際用過的類和方法,讓我對編程有了許多新的思想.大一學了C語言,雖然當時學的還不錯,由于學的都是入門知識,所以自己做的都是DOS下執(zhí)行的程序,雖然可以實現(xiàn)一定的功能,但和自己平時用的軟件相差很大.這學期剛開課學java感覺沒什么新鮮感,它的跨平臺特性也只是聽聽,根本沒有認識,知道學到第七章圖形界面用戶編程的時候,我發(fā)現(xiàn)學會之后自己可以做出來的軟件就更接近平時使用的軟件了,不過由于平時學習不刻苦,到時沒有時間靜下心來寫java代碼,知道結課做課設,才靜下心來開始研究java,結合以前的編程知識,做起了自己的程序。我曾經用c語言做過這個系統(tǒng),做起來會比較熟練,同時想通過做課設學習一點數(shù)據(jù)庫的知識,感覺這些知識更貼近實際應用,選好之后開始準備課設,先從最簡單的主窗體,到主窗體的菜單,組件添加,再到各個功能的獨立窗體的建立,再到最后的數(shù)據(jù)庫連接,功能的實現(xiàn),一步步走來,收獲頗多.其中獨立窗體中的組件排版是碰到的第一個問題,最簡單的方法是在建每個窗體時把所有需要的組件全部重新添加進去,但是這樣代碼會很長,而卻會多占很多內存空間,于是我決定把個功能窗體中共同的組件在一個新方法中統(tǒng)一加載,為了減小占內存空間,組建的在主類的構造方法中生成,所有獨立功能窗口公用組件,這樣既減少了代碼額長度,又提高了程序的內存利用率。還有很多問題,都在權衡之后得到了較優(yōu)的解決方法.它能夠使這次課設還讓我對java的跨平臺性有了進一步認識,當我學好代碼興致勃勃的想把它做成exe可執(zhí)行文件時,在網上搜索之后發(fā)現(xiàn)它似乎很難實現(xiàn),就是應為它的java語言的實現(xiàn)機制,通過jre來執(zhí)行執(zhí)行java代碼,而不是調用系統(tǒng)本地代碼.除此之外我還學到了新的編程技巧,比如對try,catch的運用。剛學的時候就是照書本上的打,很不情愿但是必須打的代碼,在做課設時,我發(fā)現(xiàn)他又很神奇的功能可以幫助我解決用其他辦法不好解決的問題,比如關閉窗口。剛開始程序只有主窗口時,關閉很好實現(xiàn),但隨著程序功能的完善,需要關閉的窗口越來越多,需要關閉的類型也便多了,到了關閉Dialog的時候,發(fā)現(xiàn)Dialog不能強制轉化為Frame,如果想用前面的方法管還得把多處代碼進行修改,不過我想到了用try來解決這個問題。參考文獻[1]李鐘尉,馬文強,陳丹丹Java從入門到精通第1版清華大學出版社2008.9[2]劉萬軍,梁清華,王松波,宋強Java程序設計實踐教程第1版清華大學出版社2006.9

《數(shù)據(jù)庫原理與應用》課程設計報告選題名稱:學生信息管理系統(tǒng)組長:李盟指導教師:湯嘉立設計日期:2016.06.13-—2016。06。24學號姓名小組評分教師評分2014144414李盟902014144415李玲902014144429徐蘭902014144431許媛媛90課程設計目的:數(shù)據(jù)庫是一門實踐性很強的課程,為了使學生加深對數(shù)據(jù)庫基本知識的理解,掌握數(shù)據(jù)庫設計和開發(fā)的基本方法,學生自選題目,要求學生完成一個完整的數(shù)據(jù)庫設計過程和基本的開發(fā)過程,從而培養(yǎng)學生在數(shù)據(jù)庫應用領域中的分析問題和解決問題的能力。課程設計內容:(1)數(shù)據(jù)庫設計教師講解數(shù)據(jù)庫的設計方法以及PowerDesigner的使用,學生自選題目,要求學生根據(jù)題目的需求描述,進行實際調研,提出完整的需求分析報告、用PowerDesigner建立概念模型、邏輯模型、物理模型。在物理模型中根據(jù)需要添加必要的約束、視圖、觸發(fā)器和存儲過程等數(shù)據(jù)庫對象,最后生成創(chuàng)建數(shù)據(jù)庫的腳本,提出物理設計的文檔。要求學生提交的報告包含:需求說明書概念數(shù)據(jù)模型(E-R數(shù)據(jù)模型)邏輯數(shù)據(jù)模型(含關系規(guī)范化)物理數(shù)據(jù)模型(含約束、視圖、觸發(fā)器、存儲過程、安全設計、恢復方案、事務設計等等)創(chuàng)建數(shù)據(jù)庫的腳本(數(shù)據(jù)庫對象的定義語言)物理設計的文檔(數(shù)據(jù)庫的實施規(guī)劃)(2)數(shù)據(jù)庫開發(fā)在數(shù)據(jù)庫設計的基礎上開發(fā)一個基本的數(shù)據(jù)庫應用系統(tǒng),要求有基本的數(shù)據(jù)查詢功能和數(shù)據(jù)管理功能,并能將存儲過程、觸發(fā)器、事務控制等運用其中。開發(fā)工具可以自己選擇。課程設計要求:數(shù)據(jù)庫課程設計單獨設課,為2周獨立實踐環(huán)節(jié)(40學時),一般4人1組,指定1人為組長(也可申請獨立完成),但每人要承擔獨立的工作、獨立完成課程設計報告。通過以上過程,鍛煉學生從實際應用出發(fā),進行需求分析,利用PD工具建立數(shù)據(jù)庫模型、完善數(shù)據(jù)庫模型,到最后的數(shù)據(jù)庫實施和應用系統(tǒng)開發(fā)。希望通過這個過程可以鞏固所學知識,提高學生的綜合分析問題和解決問題的能力。實驗條件:硬件條件:PC機。軟件條件:(Elipse、SQLServer2008、PowerDesigner)實驗方法與步驟:需求分析(一)目標學生信息管理系統(tǒng)的目標是方便學校教務處系統(tǒng)的管理學生的信息,并為學校和學生間提供一個信息共享的平臺.隨著學校的普及和人們文化水平的提高,高效的教學管理系統(tǒng)越來越廣泛應用于各類信息化學校.學生信息管理系統(tǒng)要求實用性強、使用方便、效率高和安全可靠等特點.用戶管理:用戶共分為管理員,教師和學生。學生和教師通過注冊建立賬戶,管理員由系統(tǒng)設定統(tǒng)一的用戶名和密碼.經分析我們認為學生學籍管理系統(tǒng)的具體要求為:1。能全面管理學校教學相關的各類主體,如用戶管理員,學生用戶以及選修課程表2。通過使用計算機能方便的維護(包括插入、刪除、修改)各信息表3.能方便的實現(xiàn)基于多個表的連接查詢4.系統(tǒng)具有操作方便、簡捷等特點(二)需求陳述學生對功能的需求分析:查詢個人基本信息查詢學生課程信息查詢學生成績信息管理員對功能的需求分析:

添加、刪除、修改、查詢學生信息

添加、刪除、修改、查詢課程信息

修改、查詢用戶信息

查詢選課信息

修改、查詢成績信息概念數(shù)據(jù)模型設計(A)局部E-R模型(B)整體E-R模型邏輯模型設計(A)將概念數(shù)據(jù)模型轉化成邏輯數(shù)據(jù)模型(B)對模型進行必要的完善和優(yōu)化物理模型設計(A)將邏輯數(shù)據(jù)模型轉化成物理數(shù)據(jù)模型(B)對模型進行必要的完善和優(yōu)化(C)根據(jù)需要設計視圖、存儲過程和觸發(fā)器等(D)描述安全管理方案、備份恢復策略、并發(fā)控制策略等系統(tǒng)實現(xiàn)描述數(shù)據(jù)庫實施的方法和過程,詳細文檔以附件1形式提交.個人工作報告除上一步驟要求的完整文檔外,每個人需陳述自己所承擔的工作、在討論中的個人見解,提供個人所承擔工作的有關文檔(可能是不完整的),并對個人的工作情況、收獲等進行總結。承擔的工作及貢獻需求分析階段概念模型設計階段局部E—R模型:整體E—R模型:邏輯模型設計階段Student(sno,sn,sa,ss,sd)Course(cno,cn,pcno)Sc(sno,cno,g)Unpw(un,pw,qx)物理模型設計階段s(學生信息表)字段名稱數(shù)據(jù)類型描述snochar(10)學號,關鍵字snchar(20)姓名saint年齡sschar(10)性別sdchar(10)院系c(課程信息表)字段名稱數(shù)據(jù)類型描述cnochar(10)課程號,關鍵字cnchar(30)課程名pcnochar(10)先行課程號sc(選課信息表)字段名稱數(shù)據(jù)類型描述snochar(10)學號,關鍵字cnochar(10)課程號,關鍵字gint成績unpw(用戶信息表)字段名稱數(shù)據(jù)類型描述unchar(10)用戶名,關鍵字pwchar(10)密碼qxint角色1.視圖:s(學生信息表)c(課程信息表)sc(選課信息表)unpw(用戶信息表)實施和實現(xiàn)階段詳細見附件1。課程設計個人總結徐蘭:兩個星期的時間非??炀瓦^去了,這半個月我不敢說自己有多大的進步,但是獲得了不少的知識,也了解了項目開發(fā)的部分過程。雖說上過數(shù)據(jù)庫相關的課程,有做過數(shù)據(jù)庫相關的實驗,但是沒有親身經歷過相關的設計工作細節(jié).這次課程設計給我提供了一個很好的機會。通過這次課程設計發(fā)現(xiàn)這其中需要的很多知識我們沒有接觸過,上網查找資料的時候發(fā)現(xiàn)我們以前學到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道.同時也發(fā)現(xiàn)有狠毒已經學過的東西我們沒有理解到位,不能靈活運用于實際,不能很好的用來解決問題,這就需要自己不斷的大量的時間,通過不斷的自學,不斷地發(fā)現(xiàn)問題,思考問題,進而解決問題。這次的課程設計也是為我們以后的畢業(yè)設計作品提前打好基礎。在這次的課程設計中,我負責的是創(chuàng)建數(shù)據(jù)庫,這些就讓我用到了數(shù)據(jù)庫的很多知識,對SQL語言,數(shù)據(jù)庫的創(chuàng)建、修改、刪除有了更深的了解,并且更加熟練的掌握了數(shù)據(jù)庫中的SQL語句。我想我做的是組里面最簡單的工作,因為我做的是有基礎的,組長做的JAVA前臺就比較的累了,她還要先去學習.在她做的時候我也學習了一下,為之后打個基礎。通過這次課程設計的完成,是我對自己所學知識進一步的了解,同時通過實踐發(fā)現(xiàn)自己的不足,對知識的掌握及運用存在諸多的不完善。所以在今后的學習中,我會繼續(xù)努力,完善自我,同學的幫助和學校的精心安排是這個課題能夠順利進行。李玲:在本次課程設計中,我負責課程設計報告的整理與編寫,通過整理報告,我對于SQL,JAVA的編程方式以及他們之間的相互連接,基本運用有了全方位的認識,我的分析能力,獨立思考能力都得到了一定程度的提高?;仡櫰鸫苏n程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識.通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。實驗過程中,也對團隊精神的進行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團結就是力量,只有互相之間默契融洽的配合才能換來最終完美的結果。讓我更加深切的體會到團隊合作的重要性。許媛媛:這次的數(shù)據(jù)庫課程設計,我主要是負責前期資料的收集,在設計期間及時提供相關的有利資料。兩個星期的時間非??炀瓦^去了,這兩個星期不敢說自己有多大的進步,獲得了多少知識,但起碼是了解了系統(tǒng)開發(fā)的過程。兩周課程設計讓我對java語言等編程技術產生了濃厚的興趣,更重要的是增強了我學習的自信心。剛開始我們查找資料、了解有關的知識,相互探討,了解學生信息管理系統(tǒng)的需求,做好需求分析后,開始系統(tǒng)的設計,畫出E-R圖,寫出各個實體的屬性。在我搜集資料的過程中,發(fā)現(xiàn)這其中需要的很多知識是我們之前沒有接觸過的,去圖書館查資料的時候發(fā)現(xiàn)我們前邊所學到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時也發(fā)現(xiàn)有很多已經學過的東西我們沒有理解到位,不能靈活運用于實際,不能很好的用來解決問題,這就需要我們不斷的大量的實踐,通過不斷的自學,不斷地發(fā)現(xiàn)問題,思考問題,進而解決問題。在這個過程中我們將深刻理解所學知識,同時也可以學到不少很實用的東西。這次的系統(tǒng)設計不僅使我們學會了把數(shù)據(jù)庫的各個模塊聯(lián)系起來,并與java相連接,更讓我懂得了如何設計一個系統(tǒng),了解了系統(tǒng)設計的過程。李盟:在本次課程設計中,本組課程選題名稱為“學生信息管理系統(tǒng)”,由于我擔任的是組長,因此我不僅負責自己的部分,還負責課題布置與集中交流.我在本小組中的主要任務是java程序的編寫及修改。在課程設計初期,我們小組首先確定的課題題目,在細致地討論了系統(tǒng)的需求,列出了相應的模塊,并進行了結構化設計.然后我再根據(jù)我們的初步研究結果,確定我的編程方向,開始我的任務。我通過借閱相關書籍,上網查閱資料等方式,完成了我的系統(tǒng)編程初稿.但在系統(tǒng)測試階段,出現(xiàn)了很多的問題和錯誤。比如數(shù)據(jù)庫文件的導入路徑出錯,導致數(shù)據(jù)庫連接錯誤;通過老師的指導,幸而解決了此問題.通過這次課程設計,我不僅清楚地知道了自己在數(shù)據(jù)庫原理知識和編程語言方面的不足,還認識到了在合作過程中,個人的力量總是不足的,需要大家一起協(xié)作.我們真切地體驗了軟件項目管理技能和方法,熟悉了軟件工具與環(huán)境,把課堂學習的理論知識很好的在實踐中運用了起來。我們小組成員之間合作默契,奮斗雖是艱苦的,但收獲是快樂的。我們相信,在大家的不懈努力之下目標一定可以達成,我們也將在學習數(shù)據(jù)庫及其他網絡編程語言的道路上更加進步??偨Y(組長完成):小組分工情況說明及工作量(工作量以百分比表示)李盟:前臺頁面設計31%李玲:報告整理23%徐蘭:后臺SQL建表23%許媛媛:收集資料23%小組工作總結課程設計誠然是一門專業(yè)課,給我們很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門辯思課,給了我們許多道,給了我們很多思,給了我們莫大的空間。同時,設計讓我們感觸很深。使我們對抽象的理論有了具體的認識.在經歷了將近兩個星期的課程設計過程后,本系統(tǒng)基本能夠完成學生學籍信息和學生的成績的查詢、插入、刪除、修改等。這次的課程設計是分組討論和制作的.我們小組從了解課題、理解課題、查找資料、確定思路到設計實施,學生信息管理系統(tǒng)初步形成。我們能從中深刻的感受到自己又收獲了很多東西.首先,更進一步的了解了數(shù)據(jù)庫的基本操作,在這之前,數(shù)據(jù)庫的學習僅僅剛開了個頭,我們只是在了解一些概念性的東西。在做這個系統(tǒng)之前,連基本的連接數(shù)據(jù)庫,配文件DSN,數(shù)據(jù)庫查詢語句等這些東西都不熟練.現(xiàn)在對于數(shù)據(jù)庫的增刪改查操作比較熟練了,對于初學者來說,比較頭疼的就是對于單引號的處理。我的建議是如果不理解先把按照課本上正確的語句敲,然后在多次進行數(shù)據(jù)庫的鏈接,增刪改查操作中不斷總結規(guī)律.這次設計的學生信息管理系統(tǒng),完全體現(xiàn)了自己在數(shù)據(jù)庫語言和程序設計課程學習狀況,充分地為自己以后更深入了數(shù)據(jù)庫語言奠下深厚的基礎??v觀此學生信息管理系統(tǒng)的整體概況,目前,自我認為設計良好,相關功能都能夠實現(xiàn),功能強大,條理清晰,界面可觀性比較好。并且特色在于,所設計的表單都在一個表單系統(tǒng)桌面中運行,比較符合系統(tǒng)的觀念.通過本次實踐,我們學習了許多數(shù)據(jù)庫的知識以及它與JAVA的連接,而且學到了書本上學不到的東西,積累了一點經驗和教訓,有了些體會.1、必須詳細準確的做好需求分析.2、軟件工程原理和方法是軟件開發(fā)得以順利進行的保障,一定要遵守,否則既費時又費力.3、通過本次課程設計,端正了我們的學習態(tài)度,提高了實踐能力。使我認識到應該以嚴謹?shù)目茖W態(tài)度勇于去實踐和探索。這次課程設計既是一個學習的過程,也是一個實踐的過程,它使我們獲得了一些開發(fā)大型數(shù)據(jù)庫系統(tǒng)的經驗.還有就是由于我們對數(shù)據(jù)庫知識的掌握有限和不牢固,角色和視圖的創(chuàng)建沒有想象中的完美,備份和還原也只是初步的形成,以致學生學籍管理系統(tǒng)只是達到了基本要求,有待進一步改善,希望老師給予批評.小組自評學號:2014144414姓名:李萌成績:90學號:2014144415姓名:李玲成績:90學號:2014144429姓名:徐蘭成績:90學號:2014144431姓名:許媛媛成績:90源程序、代碼、具體語句等,若表格空間不足時可作為附錄另外附頁。附件1系統(tǒng)實施登錄界面圖片:代碼:packageli;importjavax.swing。*;importjava.awt。*;importjava。awt.event.*;importjava。sql。*;classDLFrameextendsJFrameimplementsActionListener,ItemListener{//登錄界面?JPanelp1=null; JPanelp2=null; JPanelp3=null;?JLabeluserName=newJLabel("用戶:”);?JTextFieldtxtUser=newJTextField(); JLabelpassword=newJLabel(”密碼:"); JPasswordFieldtxtPwd=newJPasswordField(6); JLabelrole=newJLabel(”角色:”);?JComboBoxcbrole=newJComboBox();?JButtonbtnLogin=newJButton("登錄");?JButtonbtncz=newJButton("重置"); JButtonbtnCancel=newJButton("取消"); JLabelimageLabel;?Iconimage; staticintOK=1;?staticintCANCEL=0; intactionCode=0; Connectioncon=null;?Statementstmt=null; ResultSetrs=null; intqxian=0;?publicDLFrame(){//構造方法 super("登錄界面”); p1=newJPanel();? p2=newJPanel();? p3=newJPanel();? cbrole。addItem("管理員"); cbrole.addItem("學生"); image=newImageIcon("Tulips。jpg”);??imageLabel=newJLabel(image);??p1.add(imageLabel); this.setLayout(newFlowLayout()); ?this.setBounds(100,100,246,345); ?p2.setLayout(newGridLayout(4,2));? p2。add(userName); ?p2.add(txtUser); ?p2.add(password);??p2.add(txtPwd);??p2.add(role); p2。add(cbrole);? p3.add(btnLogin);? p3.add(btncz);??p3。add(btnCancel); this.add(p1);? this.add(p2);? this。add(p3);??this。setResizable(false);? this。setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);??this.show(); btnLogin。addActionListener(this); cbrole。addItemListener(this); btncz.addActionListener(this);??btnCancel.addActionListener(this); } publicvoidconnDB(){//連接數(shù)據(jù)庫??try{ ?Class.forName("com.microsoft.sqlserver.jdbc。SQLServerDriver"); }catch(ClassNotFoundExceptione){ ??e.printStackTrace();? }? try{?con=DriverManager.getConnection(? ? ?”jdbc:sqlserver://localhost:1433;DatabaseName=student",? ??"sa”,"123");?? stmt=con.creat(yī)eStatement(); ?}catch(SQLExceptione){ e。printStackTrace();? }?} publicvoidcloseDB()//關閉連接 { try{? stmt.close(); con。close();??}cat(yī)ch(SQLExceptione){ ??e。printStackTrace();??} }?publicvoiditemStat(yī)eChanged(ItemEvente){? if(e.getStat(yī)eChange()==ItemEvent。SELECTED){???JComboBoxjcb=(JComboBox)e.getSource(); ? qxian=jcb.getSelectedIndex(); ?} }?publicvoidactionPerformed(ActionEvente){? Objectsource=e.getSource(); ?Stringun=null; Stringpw=null; ?booleansuccess=false;//用于判斷是否登錄成功??if(source==btnLogin){?? if(txtUser。getText().equals("")||txtPwd。getText()。equals("")){//判斷是否輸入了用戶名和密碼? ?JOptionPane.showMessageDialog(null,"登錄名和密碼不能為空!");?? }else{?? ?this。connDB(); ? ?try{ ??rs=stmt。executeQuery("select*fromunpwwhereqx=”+qxian); ? while(rs。next()){ ? ? un=rs.getString("un")。trim();?? ?pw=rs.getString("pw”).trim(); ?? ? if(txtUser。getText().equals(un)){??? ? ?if(txtPwd.getText().equals(pw)){? ?? ? ?actionCode=OK; ?? ? ? this。setVisible(false);?? ? ??if(qxian==0){newManagerFrane();//進入管理員界面 ? ?}??? ??if(qxian==1){ ??? ?? newStudentFrame();//進入學生界面? ? ?? } ? ?? ? success=true;? ? break;???? ??}else{??? ? ?JOptionPane。showMessageDialog(null,"密碼錯誤?。ⅲ?;? ?? ? txtPwd.setText(”"); ??success=true; }?? ?} ??? } ??? if(!success){ ?? JOptionPane。showMessageDialog(null,”登錄名錯誤!"); ? ??txtUser.setText(”"); ????txtPwd。setText(”"); ?? }?? ?}cat(yī)ch(SQLExceptione1){? ? ?e1。printStackTrace();? }? } }elseif(source==btncz){ txtUser。setText(””);? ?txtPwd.setText(”");? }elseif(source==btnCancel){ ??System.exit(0);??}?} publicstaticvoidmain(String[]args)?{ ?JPanelmainp=newJPanel();? DLFramestudent=newDLFrame(); }}管理員界面圖片:代碼:packageli;importjava.awt。*;importjava.awt。event.*;importjavax.swing。*;classManagerFraneextendsJFrameimplementsActionListener{//管理員界面 JPanelp1=newJPanel(); JPanelp2=newJPanel();?JButtonbtns=newJButton(”學生信息管理”); JButtonbtnc=newJButton("課程信息管理");?JButtonbtnsc=newJButton("選課信息管理");?JButtonbtng=newJButton(”成績信息管理");?JButtonbtnu=newJButton(”用戶信息管理");?JButtonbtnClose=newJButton("退出管理系統(tǒng)”);?JLabell=newJLabel("管理員”);?ManagerFrane(){//構造方法 super("學生信息管理系統(tǒng)”);? setSize(350,200); add(”North",p1);? add("Center”,p2); p1.add(l); p2.add(btns);??p2。add(btnc); p2.add(btnsc);??p2.add(btng);??p2.add(btnu);??p2.add(btnClose); btns。addActionListener(this);? btnc.addActionListener(this);? btnsc。addActionListener(this);? btng.addActionListener(this);? btnu。addActionListener(this);??btnClose.addActionListener(this);? this.setResizable(false); this。setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);? show(); } publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="學生信息管理")???newSM().display(); if(e.getActionCommand()=="課程信息管理”){???newCM("課程信息管理")。display(); } if(e。getActionCommand()=="選課信息管理”){ ? newSCM("選課信息管理")。display(); }??if(e。getActionCommand()==”成績信息管理"){? ?newGM("成績信息管理”).display();? } if(e。getActionCommand()==”用戶信息管理"){? ?newPM(”用戶信息管理”)。display();??}? if(e。getActionCommand()=="退出管理系統(tǒng)”){ System.exit(0); }?}}學生信息管理代碼:classSMextendsJFrameimplementsActionListener{//學生信息管理?JPanelp=newJPanel();?JButtonbtnAdd=newJButton("增加");?JButtonbtnDelete=newJButton("刪除"); JButtonbtnAlter=newJButton("修改");?JButtonbtnSearch=newJButton("查詢”);?JButtonbtnDisplay=newJButton("顯示”); JMenuBarmb=newJMenuBar();?JPanelp1=newJPanel();;?JTablesTable; JScrollPanescroll; Connectioncon=null; Statementstmt=null; ResultSetrs=null;?Object[][]playerInfo;?SSelectsst;?Stringmxh=null;?booleanbstd=false; SM(){//構造方法? super("學生信息管理"); ?add("South",p);??this.add("Center",p1);??mb。add(btnAdd);? mb.add(btnDelete); ?mb.add(btnAlter);? mb.add(btnSearch);? mb。add(btnDisplay); SM(SSelectsst){//構造方法 super(”學生信息管理");? this.sst=sst; ?bstd=true;??add(”South”,p);??this.add(”Center",p1); ?mb。add(btnAdd);??mb。add(btnDelete);??mb。add(btnAlter); ?mb。add(btnSearch); ?mb.add(btnDisplay); ?this。connDB();? this.setBounds(200,200,400,260); ?btnAdd。addActionListener(this); ?btnDelete。addActionListener(this);? btnAlter。addActionListener(this);? btnSearch。addActionListener(this);? btnDisplay.addActionListener(this);? this。setJMenuBar(mb);? //this。setDefaultCloseOperat(yī)ion(JFrame.EXIT_ON_CLOSE);? this。setResizable(false); ?show();?}publicvoiddisplay(){//顯示所有學生的基本信息 ?inti=0;??intj=0;??intk=0; Listal=newArrayList(); try{ ? rs=stmt.executeQuery("select*froms");? while(rs。next()){//找出表中的記錄數(shù)賦給i? ? al。add(rs.getString("sno”));? ??al。add(rs.getString("sn")); ?? al。add(rs.getString("ss")); ? al.add(rs.getInt(”sa")); al.add(rs.getString(”sd”));? i++; ?}??}catch(SQLExceptione){???e。printStackTrace();??}? playerInfo=newObject[i][5];??String[]columnNames={"學號”,”姓名",”年齡”,"性別",”院系"}; ?try{ rs=stmt.executeQuery(”select*fromsorderbysno"); ? while(rs。next()){?? playerInfo[j][0]=rs.getString("sno"); ?playerInfo[j][1]=rs.getString("sn");? ??playerInfo[j][2]=rs。getInt(”sa”); ? ?playerInfo[j][3]=rs.getString("ss");?? playerInfo[j][4]=rs.getString(”sd"); ? j++;? } }catch(SQLExceptione){???e.printStackTrace();??}? sTable=newJTable(playerInfo,columnNames);//創(chuàng)建網格 p1。add(sTable);??scroll=newJScrollPane(sTable); this。add(scroll); }?publicvoiddelete(){//刪除某個學生的基本信息??Stringxh=null; Stringxm=null; ?intnl=0; Stringxb=null;??Stringyx=null; introw=-1;? row=sTable。getSelectedRow();??if(row==-1){//判斷要刪除的信息是否被選中???JOptionPane。showMessageDialog(null,"請選擇要刪除的記錄!");? }else{? if(!bstd){//判斷選擇的是不是查詢后的結果? intj1=0; ?try{?? ??rs=stmt。executeQuery(”select*froms”); ?? while(rs。next()&&j1<=row){//找出當前被選中的記錄在數(shù)據(jù)庫中的對應 ? ?xh=rs。getString("sno"); ??xm=rs.getString("sn"); ??nl=rs。getInt(”sa”);?? ?? xb=rs.getString("ss”); ? ?yx=rs.getString(”sd”);?? ? ?j1++; ? ?}??? }catch(SQLExceptione){??? e。printStackTrace(); ? } ??inti1=0;? ??try{ ?intrs1=stmt。executeUpdate("deletefromswheresno=’”+xh+"’");//刪除數(shù)據(jù)庫中當前被選中的記錄? ?? stmt.executeUpdate("deletefromunpwwhereun='”+xh+"'”);//刪除對應的用戶表中的記錄 ??? JOptionPane。showMessageDialog(null,"記錄刪除成功!");? ??this。dispose();??? newSM()。display(); ???}catch(SQLExceptione){? e.printStackTrace(); ??} }else{?? try{ ? ? intrs1=stmt。executeUpdate("deletefromswheresno='" ? ??+mxh+”'");??? ?stmt.executeUpdate("deletefromunpwwhereun=’"+mxh? ? ?+”'"); ? ?JOptionPane.showMessageDialog(null,”記錄刪除成功!”); this。dispose();? ? ?newSM().display();? }catch(SQLExceptione){ ????e.printStackTrace(); } ?} ?}?} publicvoidupdat(yī)e(){//修改某個學生的基本信息??Stringxh=null;??Stringxm=null; intnl=0;??Stringxb=null; Stringyx=null;??introw=—1; ?row=sTable.getSelectedRow(); ?if(row==-1){?? JOptionPane.showMessageDialog(null,”請選擇要修改的記錄!”); ?}else{? ?intj1=0;???try{? ??if(!bstd){//判斷選擇的是不是查詢后的結果 ? rs=stmt.executeQuery("select*froms");? ? }else{ ????rs=stmt.executeQuery("select*fromswheresno='"+mxh ? ??+"’");? ? }? while(rs.next()&&j1〈=row){//找出當前被選中的記錄在數(shù)據(jù)庫中的對應 ??xh=rs.getString("sno"); ? xm=rs.getString("sn"); ?nl=rs.getInt("sa”); ??xb=rs.getString("ss"); ?? ?yx=rs。getString("sd”);? ?j1++; ?}? ?}catch(SQLExceptione){?? e.printStackTrace(); ?}?? SAddsadd=newSAdd(xb,yx);?? sadd.setTitle(”修改"); ??sadd。tsno.setText(xh); sadd.tsname.setText(xm); ?sadd.tsage.setText(”"+nl);?? sadd.tsno.setEnabled(fa

溫馨提示

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

評論

0/150

提交評論