版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
西安郵電大學(xué)數(shù)據(jù)庫課程設(shè)計報告題目:選課系統(tǒng)課程設(shè)計學(xué)院名稱:計算機(jī)學(xué)院專業(yè)名稱:軟件工程班級:軟件1104學(xué)號:04113125學(xué)生姓名:郭亞濤指導(dǎo)教師:喬平安時間:2013年6月17日至2013年6月30日
課程設(shè)計目的1.進(jìn)一步學(xué)習(xí)和掌握數(shù)據(jù)庫原理的基礎(chǔ)知識和理論。2.學(xué)習(xí)SQLServer數(shù)據(jù)庫管理系統(tǒng)的基本功能和建立數(shù)據(jù)庫各種對象的方法。3.熟練掌握和使用SQL語言操縱數(shù)據(jù)庫,使用T-SQL語言編程。4.理解和掌握利用數(shù)據(jù)庫所學(xué)的理論知識來設(shè)計數(shù)據(jù)庫的基本方法和步驟。5.通過上機(jī)操作和調(diào)試程序,提高學(xué)生理論聯(lián)系實際和動手操作能力。 二、課程設(shè)計內(nèi)容1.完成數(shù)據(jù)的添加和修改,并提交數(shù)據(jù)庫保存。其中的數(shù)據(jù)包括:學(xué)生信息、課程信息、教師信
2.設(shè)計實現(xiàn)學(xué)生信息查詢,教師信息查詢,課程信息查詢,選課,選課查詢,等JAVA圖形化界面面
。
3.具備一定的安全性管理功能。包括登錄、退出等功能。三、軟硬件環(huán)境及系統(tǒng)所采用的體系結(jié)構(gòu)系統(tǒng)的體系結(jié)構(gòu)為C/S,前臺為Java,后臺數(shù)據(jù)庫一般為SQLServer需求分析學(xué)生管理是學(xué)校管理中的一項重要任務(wù),以往的手工操作已經(jīng)不能適應(yīng)現(xiàn)在辦公的需要.為了擺脫繁瑣的勞動,提高工作效率,利用計算機(jī)進(jìn)行信息處理成為必然.開發(fā)功能完善及安全可靠的管理系統(tǒng)可以大大提高學(xué)校資源的利用率,及時,準(zhǔn)確地獲取需要的信息,充分發(fā)揮人員的工作潛力。正是咨詢業(yè)的迅速發(fā)展使得人們從過去的手工勞動中得以解脫.同時,編寫一套完善的學(xué)生管理系統(tǒng)的任務(wù)就顯得尤為重要。本學(xué)生管理系統(tǒng)可實現(xiàn)學(xué)生基本信息、成績信息、課程信息、班級基本信息表、教師基本信息表等的錄入、修改、查詢、更新和刪除。功能需求分析用戶密碼管理密碼修改、用戶刪除和用戶信息查詢。班級管理添加、修改、刪除和查詢班級信息。教師管理添加、修改、刪除和查詢教師信息。五、系統(tǒng)設(shè)計本系統(tǒng)采用C/S體系結(jié)構(gòu),客戶端負(fù)責(zé)提供表達(dá)邏輯、顯示用戶界面信息、訪問數(shù)據(jù)庫服務(wù)器,采用java作為開發(fā)工具;服務(wù)器端則用于提供數(shù)據(jù)服務(wù),采用SQLServer2008標(biāo)準(zhǔn)版作為數(shù)據(jù)庫管理系統(tǒng)。本系統(tǒng)按照功能劃分為以下三個個模塊:學(xué)生界面(包括學(xué)生添加和查詢等)、教師界面(包括課程查詢、成績添加等)和管理員界面(包括課程管理、教師管理、學(xué)生管理等)。系統(tǒng)的功能模塊圖如下圖所示:選選修課程管理系統(tǒng)教師界面教師界面管理員界面管理員界面學(xué)生界面數(shù)據(jù)庫設(shè)計2、數(shù)據(jù)庫設(shè)計(1)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計本系統(tǒng)主要有三個實體:學(xué)生實體、選修課兩個實體,一個學(xué)生可以選修若干門課程,一門課程也可以被多個學(xué)生選修,這兩個實體集之間是多對多聯(lián)系,聯(lián)系上有選課成績;b、教師和課程兩個實體,一個老師可以教授若干門課程,一門課程也可以被多個老師教授,這兩個實體集之間也是多對多聯(lián)系;數(shù)據(jù)庫設(shè)計(2)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 根據(jù)關(guān)系模型的轉(zhuǎn)換原則,上面的E—R圖可轉(zhuǎn)換為如下所示的關(guān)系模型:學(xué)生信息表:根據(jù)上面的E-R圖設(shè)計及關(guān)系模型的設(shè)計,得出數(shù)據(jù)表的設(shè)計,在本系統(tǒng)中主要的數(shù)據(jù)表如下:表1教師信息表teacher的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度是否可為空PK教師工號char10
教師姓名char10是
所屬院系char10是教授課程號char10教授課程名char10是表2學(xué)生信息表student的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度是否可為空PK學(xué)號char10
姓名char10是
所屬院系char20是所選課程號int4選修課程char10是選修成績int10是表3course的表結(jié)構(gòu)主碼列名數(shù)據(jù)類型寬度是否可為空PK課程號char10課程名char10是
學(xué)分int4
學(xué)時int4下面在系統(tǒng)實施階段就可以物理實現(xiàn)數(shù)據(jù)庫了,本系統(tǒng)使用前面實驗已經(jīng)建好的服務(wù)器端SQLServer數(shù)據(jù)庫 1.課程基本信息表E-R圖:課程課程課程號課程名總分學(xué)時學(xué)分成績基本信息表E-R圖:成績成績課程號學(xué)號學(xué)期各科成績3.教師基本信息表E-R圖:教師教師教師姓名性別民族出生日期所教專業(yè)教師編號工資系統(tǒng)的實施代碼:publiccharlogon()throwsSQLException { Stringtuserid=t1.getText(); Stringtpassword=newString(t2.getPassword()); Stringsql1=null,sql2=null; ResultSetrs=null; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); sql1="execProcLogon'"+tuserid+"','"+tpassword+"'"; rs=DBm.executeQuery(sql1);if(rs.next())//如果存儲過程有結(jié)果返回,則將用戶信息讀入并保存 { System.out.println(rs.getString(1)+"如果存儲過程有結(jié)果返回,則將用戶信息讀入并保存"); userid=rs.getString(1);password=rs.getString(2); if(userid.startsWith("T")) {TeaInfo.saveTea(userid);} elseif(userid.startsWith("S")){StuInfo.saveStu(userid);} elseif(userid.startsWith("A")) {sql2=sql1;DBm.connectDB();rs=DBm.executeQuery(sql2);} rs.close();DBm.closeDB(); returnuserid.substring(0,1).toCharArray()[0]; } else{userid=null;password=null; JOptionPane.showMessageDialog(this,"用戶名或密碼錯誤,請重新填寫", "警告",JOptionPane.WARNING_MESSAGE); rs.close();DBm.closeDB();return'0';}} publicvoidreset() {t1.setText(null);t2.setText(null);t1.requestFocusInWindow();}publicvoidactionPerformed(ActionEvente) { if(e.getSource()==button) {if(selectcourse()>0){ JOptionPane.showMessageDialog(this,"選課成功\n點擊\"確定\"查看已選課程","選課成功",JOptionPane.INFORMATION_MESSAGE); ChooseList.updateTable();stuPanel.card.show(StuPanel.pCenter,"已選課程");}}} publicintselectcourse() { intselectedCount=ChooseList.getSelectedCount(); inta=xianzhi();intc=0; String[]courseID=newString[selectedCount];if(selectedCount==3) { JOptionPane.showMessageDialog(this,"選課數(shù)目不能超過3門,你已經(jīng)選擇了3門\n點擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程");returnc;} else{if(a+selectedCount>3) { JOptionPane.showMessageDialog(this,"選課數(shù)目不能超過3門,你已經(jīng)選擇了"+selectedCount+"門\n點擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程");returnc;} else {//不能選重復(fù)了 Stringsql="execSelectedCourse'"+Logon.userid+"'"; //System.out.println(sql+"不能選重復(fù)了"); SqlManagerDBm=SqlManager.createInstance(); DBm.connectDB(); ResultSetrs=DBm.executeQuery(sql); try{inti=0;while(rs.next()){ courseID[i]=rs.getString(1).trim();System.out.println(courseID[i]+"changdu");} rs.close();}catch(SQLExceptione){e.printStackTrace();returnc;} DBm.closeDB(){for(inti=0;i<count;i++) { for(intj=0;j<selectedCount;j++) { if(table1.getValueAt(i,0).toString().equals("true")) { //System.out.println(table1.getValueAt(i,1).toString().trim()+"選課不能重復(fù),點擊"); //System.out.println(courseID[j]); if(table1.getValueAt(i,1).toString().trim().equals(courseID[j])){ JOptionPane.showMessageDialog(this,"選課不能重復(fù),\n點擊\"確定\"查看已選課程", "警告",JOptionPane.WARNING_MESSAGE); ChooseList.updateTable(); StuPanel.card.show(StuPanel.pCenter,"已選課程"); returnc;}}} } for(inti=0;i<count;i++) { if(table1.getValueAt(i,0).toString().equals("true")) { Stringcourseid=table1.getValueAt(i,1).toString(); sql="execSelectCourse'"+Logon.userid+"','"+courseid+"'";DBm.connectDB(); c=DBm.executeUpdate(sql);DBm.closeDB();System.out.println("c1="+c); }System.out.println("c2="+c);} if(c==0){ JOptionPane.showMessageDialog(this,"請選擇選修課", "警告",JOptionPane.WARNING_MESSAGE);}returnc;}}} publicintxianzhi(){ inta=0; for(inti=0;i<count;i++) {if(table1.getValueAt(i,0).toString().equals("true"))a++;} returna;}}publicvoidactionPerformed(ActionEvente) {modify.setVisible(true);} publicstaticvoidsaveStu(Stringid) {SqlManagerDBm=SqlManager.createInstance(); DBm.connectDB(); Stringsql="execProcStudent'"+id+"'"; ResultSetrs=DBm.executeQuery(sql); System.out.println(sql); try{ rs.next(); jid.setText(rs.getString(1)); jname.setText(rs.getString(2)); jsex.setText(rs.getString(3)); jbirth.setText(rs.getString(4)); jclass.setText(rs.getString(5));}catch(SQLExceptione){ e.printStackTrace();}}}七、系統(tǒng)評價及心得體會通過將近兩周的時間的艱苦歷程,終于完成了本次數(shù)據(jù)庫的課程設(shè)計——選修課程管理系統(tǒng)。如果憑現(xiàn)在所學(xué)的知識來看要完成選修課程管理系統(tǒng),這是遠(yuǎn)遠(yuǎn)不夠的,因此需要下去大量查資料并自學(xué)很多知識。所以在做的過程中,邊做邊學(xué),作出的效果并不是那么的完善。以前沒有做過這種數(shù)據(jù)庫管理系統(tǒng),面對好幾張表時,對于它們之間的聯(lián)系、E-R圖的結(jié)構(gòu),都是要經(jīng)過深思熟慮之后才能動手開始整個數(shù)據(jù)庫建立與java編程。本次課程設(shè)計雖然完成了,但是我知道還是存在一些缺陷的,數(shù)據(jù)庫還不是那么的完美,還存在一些漏洞,java編程界面面也不是那么的完美,界面結(jié)構(gòu)也有一些缺點,但是我盡最大的能力來使我的數(shù)據(jù)庫和界面面更加的人性化,更加的方便實用。在以后的學(xué)習(xí)過程中,需要對事物多加考慮,對問題全面考慮。要把問題更加的完善,不能想到什么就做什么,一定要在動手之前做好充分的準(zhǔn)備,這樣才可以做到事半功倍。本次課程設(shè)計取得一定的成績,是值得欣慰的。同時,也認(rèn)識到自學(xué)的重要性,要不懂多查書,多查資料。在做的過程中,學(xué)習(xí)知識。同時提高自己。參考文獻(xiàn)[1]錢雪忠.數(shù)據(jù)庫原理及應(yīng)用(第二版).北京郵電大學(xué)出版社.2004[2]錢雪忠.數(shù)據(jù)庫原理及應(yīng)用實驗指導(dǎo)(第二版).北京郵電大學(xué)出版社.2004[3]李剛.瘋狂Java講義.電子工業(yè)出版社.2008附錄:源代碼importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;importjava.sql.*;importjava.util.Vector;publicclassAdmPanelextendsJPanelimplementsActionListener,ItemListener,MouseListener{ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號 JButtonb1,b2,b3,b4,b5,b6; JPanelp1,p2,pCenter; CardLayoutcard=null; JTextFieldt1=newJTextField(10),t2=newJTextField(10),t3=newJTextField(10),tt1=newJTextField(10),tt2=newJTextField(10),tt3=newJTextField(10); ButtonGroupsex1=newButtonGroup(), sex2=newButtonGroup(); JRadioButtonradio1=newJRadioButton("男",true), radio2=newJRadioButton("女"); JRadioButtonr1=newJRadioButton("男",true),r2=newJRadioButton("女"); JComboBoxyear,month,date,yy,mm,dd,post; JTabletable1,table2; Vector<String>vectorColName1=newVector<String>(), vectorColName2=newVector<String>(); Vector<Vector<String>>vector1=newVector<Vector<String>>(), vector2=newVector<Vector<String>>(); DefaultTableModelmodel1=newDefaultTableModel(vectorColName1,0){ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號 publicbooleanisCellEditable(introw,intcolumn){returnfalse;} }; DefaultTableModelmodel2=newDefaultTableModel(vectorColName2,0){ privatestaticfinallongserialVersionUID=1L;//添加默認(rèn)序列號 publicbooleanisCellEditable(introw,intcolumn){returnfalse;} }; AdmPanel() { setLayout(newBorderLayout()); t1=newJTextField(10); t2=newJTextField(10); t3=newJTextField(10); tt1=newJTextField(10); tt2=newJTextField(10); tt3=newJTextField(10); sex1.add(radio1); sex1.add(radio2); sex2.add(r1); sex2.add(r2); year=newJComboBox(); month=newJComboBox(); date=newJComboBox(); yy=newJComboBox(); mm=newJComboBox(); dd=newJComboBox(); post=newJComboBox(); post.addItem("助教"); post.addItem("講師"); post.addItem("副教授"); post.addItem("教授"); for(inti=1980;i<1995;i++) year.addItem(i); for(inti=1;i<=12;i++) month.addItem(i); for(inti=1;i<=31;i++) date.addItem(i); for(inti=1950;i<1995;i++) yy.addItem(i); for(inti=1;i<=12;i++) mm.addItem(i); for(inti=1;i<=31;i++) dd.addItem(i); year.addItemListener(this); month.addItemListener(this); yy.addItemListener(this); mm.addItemListener(this); post.addItemListener(this); b1=newJButton("學(xué)生信息管理"); b2=newJButton("教師信息管理"); b3=newJButton("輸入"); b4=newJButton("刪除"); b5=newJButton("輸入"); b6=newJButton("刪除"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); JPanelp0=newJPanel(); p0.add(b1); p0.add(b2); pCenter=newJPanel(); card=newCardLayout(); pCenter.setLayout(card); p1=createStuPanel(); p2=createTeaPanel(); pCenter.add("學(xué)生信息管理",p1); pCenter.add("教師信息管理",p2); add(p0,BorderLayout.NORTH); add(pCenter,BorderLayout.CENTER); } privateJPanelcreateStuPanel() { JPanelp=newJPanel(); JScrollPanep1; JPanelp2=newJPanel(); p.setLayout(newGridLayout(2,1)); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); Stringsql="execProcAllStu"; ResultSetrs=DBm.executeQuery(sql); vectorColName1.addElement("學(xué)號"); vectorColName1.addElement("姓名"); vectorColName1.addElement("性別"); vectorColName1.addElement("生日"); vectorColName1.addElement("班級"); model1.setDataVector(vector1,vectorColName1); table1=newJTable(model1); table1.addMouseListener(this); p1=newJScrollPane(table1); p.add(p1); try{ while(rs.next()){ Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); vector1.addElement(rec_vector);//向量rec_vector加入向量vect中 } //tm.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } DBm.closeDB(); //構(gòu)造p2 Boxbase=Box.createHorizontalBox(), boxleft=Box.createVerticalBox(), boxright=Box.createVerticalBox(); JPanelpp1=newJPanel(), pp2=newJPanel(), pp3=newJPanel(), pp4=newJPanel(), pp5=newJPanel(), pp6=newJPanel(), psex=newJPanel(), pbirth=newJPanel(); psex.add(radio1); psex.add(radio2); pbirth.add(year); pbirth.add(month); pbirth.add(date); pp1.add(newJLabel("學(xué)生編號:")); pp1.add(t1); pp2.add(newJLabel("學(xué)生姓名:")); pp2.add(t2); pp3.add(newJLabel("學(xué)生性別:")); pp3.add(psex); pp4.add(newJLabel("學(xué)生生日:")); pp4.add(pbirth); pp5.add(newJLabel("所在班級:")); pp5.add(t3); pp6.add(b3); pp6.add(b4); boxleft.add(Box.createVerticalStrut(30)); boxleft.add(pp1); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp2); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp3); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp4); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp5); boxright.add(Box.createVerticalStrut(20)); boxright.add(pp6); base.add(boxleft); base.add(Box.createHorizontalStrut(80)); base.add(boxright); p2.add(base); p.add(p2); returnp; } privateJPanelcreateTeaPanel() { JPanelp=newJPanel(); JScrollPanep1; JPanelp2=newJPanel(); p.setLayout(newGridLayout(2,1)); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); Stringsql="execProcAllTea"; ResultSetrs=DBm.executeQuery(sql); vectorColName2.addElement("教師編號"); vectorColName2.addElement("教師姓名"); vectorColName2.addElement("教師性別"); vectorColName2.addElement("生日"); vectorColName2.addElement("職稱"); vectorColName2.addElement("所在院系"); model2.setDataVector(vector2,vectorColName2); table2=newJTable(model2); table2.addMouseListener(this); p1=newJScrollPane(table2); p.add(p1); try{ while(rs.next()){ Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); rec_vector.addElement(rs.getString(6)); vector2.addElement(rec_vector);//向量rec_vector加入向量vect中 } //tm.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } DBm.closeDB(); //構(gòu)造p2 Boxbase=Box.createHorizontalBox(), boxleft=Box.createVerticalBox(), boxright=Box.createVerticalBox(); JPanelpp1=newJPanel(), pp2=newJPanel(), pp3=newJPanel(), pp4=newJPanel(), pp5=newJPanel(), pp6=newJPanel(), pp7=newJPanel(), psex=newJPanel(), pbirth=newJPanel(); psex.add(r1); psex.add(r2); pbirth.add(yy); pbirth.add(mm); pbirth.add(dd); pp1.add(newJLabel("教職工號:")); pp1.add(tt1); pp2.add(newJLabel("教師姓名:")); pp2.add(tt2); pp3.add(newJLabel("教師性別:")); pp3.add(psex); pp4.add(newJLabel("教師生日:")); pp4.add(pbirth); pp5.add(newJLabel("教師職稱:")); pp5.add(post); pp6.add(newJLabel("所在院系:")); pp6.add(tt3); pp7.add(b5); pp7.add(b6); boxleft.add(Box.createVerticalStrut(40)); boxleft.add(pp1); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp2); boxleft.add(Box.createVerticalStrut(20)); boxleft.add(pp3); boxright.add(Box.createVerticalStrut(30)); boxright.add(pp4); boxright.add(Box.createVerticalStrut(10)); boxright.add(pp5); boxright.add(Box.createVerticalStrut(10)); boxright.add(pp6); boxright.add(pp7); base.add(boxleft); base.add(Box.createHorizontalStrut(80)); base.add(boxright); p2.add(base); p.add(p2); returnp; } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==b1) { card.show(pCenter,"學(xué)生信息管理"); } elseif(e.getSource()==b2) { card.show(pCenter,"教師信息管理"); } if(e.getSource()==b3) { Stringuserid=t1.getText(), username=t2.getText(), classs=t3.getText(); Stringsex="男"; if(radio2.isSelected()) { sex="女"; } Stringbirth=String.valueOf((Integer)year.getSelectedItem())+"-" +String.valueOf((Integer)month.getSelectedItem()) +"-"+String.valueOf((Integer)date.getSelectedItem()); Stringsql="execInsertStudent'"+userid+"','"+username+"','"+sex+"','"+birth+"','"+classs+"'"; Strings="execIsExistsStu'"+userid+"'"; Stringinserlog="execInsertLogon'"+userid+"'"; System.out.println(sql); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); ResultSetrset=DBm.executeQuery(s); System.out.println(s); try{ if(rset.next()) { JOptionPane.showMessageDialog(this,"學(xué)生信息插入失敗,該學(xué)生ID號已存在", "警告",JOptionPane.WARNING_MESSAGE); rset.close(); } else{ ResultSetrs=DBm.executeQuery(sql); if(rs.next()) { JOptionPane.showMessageDialog(this,"學(xué)生信息插入成功", "成功",JOptionPane.WARNING_MESSAGE); DBm.connectDB(); DBm.executeUpdate(inserlog); t1.setText("S"); t2.setText(null); t3.setText(null); radio1.setSelected(true); //this.post.setSelectedIndex(0); year.setSelectedIndex(0); month.setSelectedIndex(0); date.setSelectedIndex(0); //sql="select*fromInserted"; //ResultSetrs=DBm.executeQuery(sql); Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); vector1.addElement(rec_vector);//向量rec_vector加入向量vect中 model1.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); } else{ JOptionPane.showMessageDialog(this,"學(xué)生信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close(); } } }catch(SQLExceptionex){ ex.printStackTrace(); } DBm.closeDB(); } if(e.getSource()==b4) { //同步刪除數(shù)據(jù)庫中的數(shù)據(jù) intselectrow=0; selectrow=table1.getSelectedRow(); Stringid=table1.getValueAt(selectrow,0).toString(); Stringsql="execDeleteStudent'"+id+"'"; Stringdeletelog="execDeleteLogon'"+id+"'"; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); if(DBm.executeUpdate(sql)==1) { JOptionPane.showMessageDialog(this,"學(xué)生信息已刪除", "刪除成功",JOptionPane.INFORMATION_MESSAGE); DBm.connectDB(); DBm.executeUpdate(deletelog); model1.removeRow(selectrow); t1.setText("S"); t2.setText(null); t3.setText(null); radio1.setSelected(true); year.setSelectedIndex(0); month.setSelectedIndex(0); date.setSelectedIndex(0); } DBm.closeDB(); } if(e.getSource()==b5) { Stringuserid=tt1.getText(), username=tt2.getText(), depart=tt3.getText(), post=(String)this.post.getSelectedItem(); Stringsex="男"; if(r2.isSelected()) { sex="女"; } Stringbirth=String.valueOf((Integer)yy.getSelectedItem())+"-"+String.valueOf((Integer)mm.getSelectedItem())+"-"+String.valueOf((Integer)dd.getSelectedItem()); Stringsql="execInsertTeacher'"+userid+"','"+username+"','"+sex+"','"+birth+"','"+post+"','"+depart+"'"; Strings="execIsExistsTea'"+userid+"'"; Stringinsertlog="execInsertLogon'"+userid+"'"; System.out.println(sql); SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); ResultSetrset=DBm.executeQuery(s); System.out.println(s); try{ if(rset.next()) { JOptionPane.showMessageDialog(this,"教師信息插入失敗,該教師ID號已存在", "警告",JOptionPane.WARNING_MESSAGE); rset.close(); } else{ ResultSetrs=DBm.executeQuery(sql); if(rs.next()) { JOptionPane.showMessageDialog(this,"教師信息插入成功", "成功",JOptionPane.WARNING_MESSAGE); DBm.connectDB(); DBm.executeUpdate(insertlog); tt1.setText("T"); tt2.setText(null); tt3.setText(null); r1.setSelected(true); this.post.setSelectedIndex(0); yy.setSelectedIndex(0); mm.setSelectedIndex(0); dd.setSelectedItem(0); Vector<String>rec_vector=newVector<String>();//從結(jié)果集中取數(shù)據(jù)放入向量rec_vector中 rec_vector.addElement(rs.getString(1)); rec_vector.addElement(rs.getString(2)); rec_vector.addElement(rs.getString(3)); rec_vector.addElement(rs.getString(4)); rec_vector.addElement(rs.getString(5)); rec_vector.addElement(rs.getString(6)); vector2.addElement(rec_vector);//向量rec_vector加入向量vect中 model2.fireTableStructureChanged();//更新表格,顯示向量vect的內(nèi)容 rs.close(); } else{ JOptionPane.showMessageDialog(this,"教師信息插入失敗", "警告",JOptionPane.WARNING_MESSAGE); rs.close(); } } }catch(SQLExceptionex){ ex.printStackTrace(); } DBm.closeDB(); } if(e.getSource()==b6) { //同步刪除數(shù)據(jù)庫中的數(shù)據(jù) intselectrow=0; selectrow=table2.getSelectedRow(); Stringid=table2.getValueAt(selectrow,0).toString(); Stringsql="execDeleteTeacher'"+id+"'"; Stringdeletelog="execDeleteLogon'"+id+"'"; SqlManagerDBm=SqlManager.createInstance();//單態(tài)模式獲取實例 DBm.connectDB(); if(DBm.executeUpdate(sql)==1) { JOptionPane.showMessageDialog(this,"教師信息信息已刪除", "刪除成功",JOptionPane.INFORMATION_MESSAGE); DBm.connectDB(); DBm.executeUpdate(deletelog); model2.removeRow(selectrow); tt1.setText("T"); tt2.setText(null); tt3.setText(null); r1.setSelected(true); yy.setSelectedIndex(0); mm.setSelectedIndex(0); dd.setSelectedIndex(0); } DBm.closeDB(); } } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} publicvoidmouseMoved(MouseEvente){} publicvoidmouseDraged(MouseEvente){} publicvoidmouseClicked(MouseEvente) { if(e.getSource()==table1) { intselectrow=0; selectrow=table1.getSelectedRow(); Stringid=table1.getValueAt(selectrow,0).toString(); Stringname=table1.getValueAt(selectrow,1).toString(); Stringsex=table1.getValueAt(selectrow,2).toString(); Stringbirth=table1.getValueAt(selectrow,3).toString().substring(0,10); Stringclasss=table1.getValueAt(selectrow,4).toString(); t1.setText(id); t2.setText(name); t3.setText(classs); if(sex.trim().equals("男")) radio1.setSelected(true); elseif(sex.equals("女")) radio2.setSelected(true); inty=Integer.parseInt(birth.substring(0,4)); intm=Integer.parseInt(birth.substring(5,7)); intd=Integer.parseInt(birth.substring(8)); year.setSelectedIndex(y-1980); month.setSelectedIndex(m-1); date.setSelectedIndex(d-1); } elseif(e.getSource()==table2) { intselectrow=0; selectrow=table2.getSelectedRow(); Stringid=table2.getValueAt(selectrow,0).toString(); Stringname=table2.getValueAt(selectrow,1).toString(); Stringsex=table2.getValueAt(selectrow,2).toString(); Stringbirth=table2.getValueAt(selectrow,3).toString().substring(0,10); Stringposition=table2.getValueAt(selectrow,4).toString(); Stringdepart=table2.getValueAt(selectrow,5).toString(); tt1.setText(id); tt2.setText(name); tt3.setText(depart); if(sex.trim().equals("男")) r1.setSelected(true); elseif(sex.equals("女")) r2.setSelected(true); inty=Integer.parseInt(birth.substring(0,4)); intm=Integer.parseInt(birth.substring(5,7)); intd=Integer.parseInt(birth.substring(8)); yy.setSelectedIndex(y-1950); mm.setSelectedIndex(m-1); dd.setSelectedIndex(d-1); if(position.equals("助教")) post.setSelectedIndex(0); elseif(position.equals("講師")) post.setSelectedIndex(1); elseif(position.equals("副教授")) post.setSelectedIndex(2); elseif(position.equals("教授")) post.setSelectedIndex(3); } } publicvoiditemStateChanged(ItemEvente) { if(e.getSource()==year) { inty=(Integer)year.getSelectedItem(); intm=(Integer)month.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { date.removeAll(); for(inti=1;i<=29;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } else{ if(m==2) { date.removeAll(); for(inti=1;i<=28;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==month) { inty=(Integer)year.getSelectedItem(); intm=(Integer)month.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { date.removeAll(); for(inti=1;i<=29;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } else{ if(m==2) { date.removeAll(); for(inti=1;i<=28;i++) { date.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==yy) { inty=(Integer)yy.getSelectedItem(); intm=(Integer)mm.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { dd.removeAll(); for(inti=1;i<=29;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { dd.removeAll(); for(inti=1;i<=30;i++) { dd.addItem(i); } } } else{ if(m==2) { dd.removeAll(); for(inti=1;i<=28;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { date.removeAll(); for(inti=1;i<=31;i++) { date.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { date.removeAll(); for(inti=1;i<=30;i++) { date.addItem(i); } } } } elseif(e.getSource()==mm) { inty=(Integer)yy.getSelectedItem(); intm=(Integer)mm.getSelectedItem(); if(((y%4==0)&&(y%100!=0))||(y%400==0)) { if(m==2) { dd.removeAll(); for(inti=1;i<=29;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==11) { dd.removeAll(); for(inti=1;i<=30;i++) { dd.addItem(i); } } } else{ if(m==2) { dd.removeAll(); for(inti=1;i<=28;i++) { dd.addItem(i); } } elseif(m==1||m==3||m==5||m==7||m==8||m==10||m==12) { dd.removeAll(); for(inti=1;i<=31;i++) { dd.addItem(i); } } elseif(m==4||m==6||m==9||m==1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防器材智能化改造升級服務(wù)合同2篇
- 2024租賃合同簽訂程序及條件
- 2025年拓展訓(xùn)練合同范本大全:企業(yè)團(tuán)隊凝聚力提升計劃3篇
- 二零二四年度2024年三人健身產(chǎn)業(yè)合作合同6篇
- 2025年洗車場車輛停放管理及承包合同3篇
- 2025版航空航天專用鋁合金采購合同書4篇
- 二零二四年云服務(wù)器租賃與智能運維合同3篇
- 個人汽車租賃合同樣本 2024年版版B版
- 2025年度臨時臨時設(shè)施租賃合同標(biāo)準(zhǔn)范本4篇
- 2025年無償使用政府辦公樓場地舉辦會議合同范本3篇
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險防控PPT
- 充電樁采購安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報告
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 保險行業(yè)加強(qiáng)清廉文化建設(shè)
- Hive數(shù)據(jù)倉庫技術(shù)與應(yīng)用
- 數(shù)字的秘密生活:最有趣的50個數(shù)學(xué)故事
評論
0/150
提交評論