JAVA數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告報(bào)告--學(xué)生選課管理系統(tǒng)_第1頁
JAVA數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告報(bào)告--學(xué)生選課管理系統(tǒng)_第2頁
JAVA數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告報(bào)告--學(xué)生選課管理系統(tǒng)_第3頁
JAVA數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告報(bào)告--學(xué)生選課管理系統(tǒng)_第4頁
JAVA數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告報(bào)告--學(xué)生選課管理系統(tǒng)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、-. z.一、課程設(shè)計(jì)目的通過這次的設(shè)計(jì),主要是做出一個(gè)小型的管理系統(tǒng),來加強(qiáng)對JAVA所學(xué)知識(shí)的鞏固和融會(huì)貫通,可以說是對一個(gè)學(xué)期所學(xué)知識(shí)的一個(gè)小結(jié),加深對JAVA數(shù)據(jù)庫的理解。二、需求分析功能需求分析:該系統(tǒng)具備管理學(xué)生信息、課程信息、選課信息的功能:用戶通過輸入賬號(hào)和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行一些基礎(chǔ)維護(hù)(學(xué)生信息維護(hù)、課程信息維護(hù)、選課信息維護(hù))。全部都可以進(jìn)行增加、修改、刪除、模糊查詢。三、數(shù)據(jù)項(xiàng):1表admin(用戶表)FieldTypeNullKeyment Usernamechar(10)PRI用戶名passwordchar(10)密碼NameChar(10)用戶昵稱2表S(學(xué)

2、生信息表)FieldTypeNullKeyment Snonvarchar(50)PRI*Snamenvarchar(50)S*nvarchar(50)系別3表C(課程信息表)FieldTypeNullKeyment onvarchar(50)PRI課號(hào)amenvarchar(50)課名4表SC(學(xué)生信息表)FieldTypeNullKeyment onvarchar(50)PRI課號(hào)Snonvarchar(50)PRI*Cnvarchar(50)成績四、系統(tǒng)功能描述該小型系統(tǒng)主要是用于管理學(xué)生及課程的基本信息,主要功能包括四方面的:1.管理學(xué)生信息,其中包括添加,刪除,修改等操作。2.管理課

3、程信息,其中包括添加,刪除,修改等操作。3.管理選課信息,其中包括添加,刪除,修改等操作。4.查詢信息,其中包括查詢學(xué)生信息,查詢課程信息,查詢選課信息等操作。選課信息課程信息學(xué)生信息刪除信息修改信息添加信息刪除信息修改信息添加信息刪除信息修改信息添加信息查詢管理選課管理課程管理學(xué)生管理學(xué)生信息管理系統(tǒng) 五、代碼分析連接數(shù)據(jù)庫方法:這是java連接數(shù)據(jù)庫的驅(qū)動(dòng),有關(guān)數(shù)據(jù)庫的操作都要用到他。publicstatic Connection CONN() String driverName = .microsoft.sqlserver.jdbc.SQLServerDriver; /加載JDBC驅(qū)動(dòng)S

4、tring dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=student; /連接服務(wù)器和數(shù)據(jù)庫test,此處student是數(shù)據(jù)庫名 String userName = sa; /默認(rèn)用戶名 String userPwd = mima; /密碼 Connection dbConn=null;try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println(Connectio

5、n Successful!); /如果連接成功 控制臺(tái)輸出Connection Successful! catch (E*ception e) e.printStackTrace();return dbConn;用戶登錄界面user.java:登錄時(shí),凡是賬號(hào)密碼未填寫、輸入錯(cuò)誤賬號(hào)密碼都會(huì)提出錯(cuò)誤提示框。在填寫好賬號(hào)密碼后,會(huì)讀取數(shù)據(jù)庫里admin表,并查詢其輸入是否存在,若無誤,則登錄到用戶界面。publicclass User e*tends JFrameprivate JLabel use,password; private JTe*tField k1;/用戶名輸入框private J

6、PasswordField k2;/密碼輸入框private utton b1,b2;/登錄窗口public User(JFrame f)super(系統(tǒng)登錄);Container c=getContentPane();c.setLayout(new FlowLayout();use=new JLabel(username:);use.setFont(new Font(Serif,Font.PLAIN,20);password=new JLabel(password:);password.setFont(new Font(Serif,Font.PLAIN,20);k1=new JTe*tFie

7、ld(12);k2=new JPasswordField(12);b1=new utton(登錄);b2=new utton(退出);/設(shè)置登錄方法BHandler b=new BHandler();E*IT d=new E*IT();b1.addActionListener(b);b2.addActionListener(d);/添加控件c.add(use);c.add(k1);c.add(password);c.add(k2);c.add(b1);c.add(b2);setBounds(600,300,250,150);setVisible(true);setResizable(false

8、);setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE);/主函數(shù)publicstaticvoid main(String args) User f1=new User(new JFrame();效果圖:用戶界面:Menu.java用戶界面能菜單欄有4個(gè)一級(jí)菜單,學(xué)生管理、課程管理、選課管理都能添加、修改、刪除數(shù)據(jù),分別操作數(shù)據(jù)庫里的S表(學(xué)生),C表(課程),SC表(選課)。查詢管理則可進(jìn)行三個(gè)表的查詢。import java.awt.*;import java.awt.event.*;import java*.swing.*;public class

9、 Menu e*tends JFrame implements ActionListenerAddstu 增加學(xué)生界面;Updatastu 修改學(xué)生界面;Delstu 刪除學(xué)生界面;AddC 增加課程界面;DelC 刪除課程界面;UpdateC 修改課程界面;AddSC 增加選課界面;DelSC 刪除選課界面;UpdateSC 修改選課界面;Selstu 學(xué)生查詢界面;JPanel pCenter;CardLayout card=null;JLabel label=null;JMenuBar mb=new JMenuBar();/菜單欄JMenu m1=new JMenu(學(xué)生管理);JMen

10、uItem add1=new JMenuItem(add1 );JMenuItem updata1=new JMenuItem(updata1 );JMenuItem delete1=new JMenuItem(delete1 );JMenu m2=new JMenu(課程管理);JMenuItem add2=new JMenuItem(add2 );JMenuItem updata2=new JMenuItem(updata2 );JMenuItem delete2=new JMenuItem(delete2 );JMenu m3=new JMenu(選課管理);JMenuItem add3

11、=new JMenuItem(add3 );JMenuItem updata3=new JMenuItem(updata3 );JMenuItem delete3=new JMenuItem(delete3 );JMenu m4=new JMenu(查詢管理);JMenuItem 學(xué)生查詢=new JMenuItem(查詢信息 );JMenuItem m5=new JMenuItem(系統(tǒng)退出);Font t=new Font (sanerif,Font.PLAIN,12);public Menu ()this.setTitle(學(xué)生選課管理系統(tǒng));try UIManager.setLookA

12、ndFeel(UIManager.getSystemLookAndFeelClassName();catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);/組合菜單addMenu1();addMenu2();addMenu3();addMenu4();addJMenuBar();setJMenuBar(mb);label=new JLabel(選課管理系統(tǒng),JLabel.CENTER);label.setFont(new Font(宋體,Font.BOLD,36);label.setHorizontalTe*tPosition(SwingConstan

13、ts.CENTER);label.setForeground(Color.red);/點(diǎn)擊事件add1.addActionListener(this);updata1.addActionListener(this);delete1.addActionListener(this);m5.addActionListener(this);add2.addActionListener(this);delete2.addActionListener(this);updata2.addActionListener(this);add3.addActionListener(this);delete3.add

14、ActionListener(this);updata3.addActionListener(this);學(xué)生查詢.addActionListener(this);card=new CardLayout();pCenter=new JPanel();pCenter.setLayout(card);增加學(xué)生界面=new Addstu();修改學(xué)生界面=new Updatastu(); 刪除學(xué)生界面=new Delstu();增加課程界面=new AddC();刪除課程界面=new DelC();修改課程界面=new UpdateC();增加選課界面=new AddSC();刪除選課界面=new

15、DelSC();修改選課界面=new UpdateSC();學(xué)生查詢界面=new Selstu();pCenter.add(歡迎界面,label);pCenter.add(增加學(xué)生界面,增加學(xué)生界面);pCenter.add(修改學(xué)生界面,修改學(xué)生界面);pCenter.add(刪除學(xué)生界面,刪除學(xué)生界面);pCenter.add(增加課程界面,增加課程界面);pCenter.add(刪除課程界面,刪除課程界面);pCenter.add(修改課程界面,修改課程界面);pCenter.add(增加選課界面,增加選課界面);pCenter.add(刪除選課界面,刪除選課界面);pCenter.ad

16、d(修改選課界面,修改選課界面);pCenter.add(學(xué)生查詢界面, 學(xué)生查詢界面);add(pCenter,BorderLayout.CENTER);validate();setVisible(true);setBounds(400,150,400,280);setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); addWindowListener(new WindowAdapter()/關(guān)閉程序時(shí)的操作public void windowClosing(WindowEvent e)System.e*it(0); );validate();priv

17、ate void addJMenuBar() mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);private void addMenu4() m4.add(學(xué)生查詢);m4.setFont(t);private void addMenu3() m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setFont(t);private void addMenu2() /將菜單加入到菜單欄中m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFo

18、nt(t); private void addMenu1() m1.add(add1);m1.add(updata1);m1.add(delete1);m1.setFont(t); public void actionPerformed(ActionEvent e)Object obj=e.getSource();if(obj=m5)System.e*it(0);elseif(obj=add1)card.show(pCenter,增加學(xué)生界面);elseif(obj=updata1) card.show(pCenter,修改學(xué)生界面);elseif(obj=delete1) card.show

19、(pCenter, 刪除學(xué)生界面);elseif(obj=add2) card.show(pCenter, 增加課程界面);elseif(obj=delete2) card.show(pCenter, 刪除課程界面);elseif(obj=updata2) card.show(pCenter, 修改課程界面);elseif(obj=add3) card.show(pCenter, 增加選課界面);elseif(obj=delete3) card.show(pCenter, 刪除選課界面);elseif(obj=updata3) card.show(pCenter, 修改選課界面);elseif

20、(obj=學(xué)生查詢) card.show(pCenter, 學(xué)生查詢界面);public static void main(String args) new Menu();效果圖:添加界面:AddC.java/AddSC.java/Addstu.java添加數(shù)據(jù)時(shí),若遇到必須信息未填寫、不能重復(fù)的信息在數(shù)據(jù)庫中已存在,都會(huì)提示無法添加及其錯(cuò)誤原因。import java.awt.*;import java*.swing.*;import java.sql.*;import java.awt.event.*;publicclass AddC e*tends JPanel implements A

21、ctionListenerJTe*tField課號(hào),課名;utton 錄入;public AddC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);課號(hào)=newJTe*tField(12);課名=newJTe*tField(12);錄入=new utton(錄入);錄入.addActionListener(this);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo

22、* bo*2=Bo*.createHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();bo*1.add(new JLabel(課號(hào):);bo*1.add(課號(hào));bo*2.add(new JLabel(課名:);bo*2.add(課名);bo*4.add(錄入);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(bo*1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(

23、Bo*.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(bo*H);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();效果圖:添加界面:UpdateC.java/UpdateSC.java /Updatestu.java先查找你想要修改的項(xiàng)目,若修改的信息包括(*、課號(hào)),則會(huì)進(jìn)行查詢,如果修改后的已存在,以及修改后必須的信息變成空都會(huì)提示無法修改和其錯(cuò)誤原因。此外,若修改C表或則S表,會(huì)連同SC表中對應(yīng)的信息一起

24、修改。import java.awt.*;import java.awt.event.*;import java.sql.*;import java*.swing.*;publicclass UpdateC e*tends JPanel implements ActionListenerString save=null;JTe*tField 課號(hào)1,課號(hào),課名;utton 修改,查找;public UpdateC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(E*ception e)S

25、ystem.err.println(不能設(shè)置外觀: +e);課號(hào)1=new JTe*tField(12);課號(hào)=new JTe*tField(12);課名=new JTe*tField(12);修改=new utton(修改);查找=new utton(查找);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo* bo*2=Bo*.createHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();Bo* bo*5=Bo*.createHori

26、zontalBo*();bo*1.add(new JLabel(課號(hào):,JLabel.CENTER);bo*1.add(課號(hào));bo*2.add(new JLabel(課名:,JLabel.CENTER);bo*2.add(課名);bo*3.add(修改);bo*5.add(new JLabel(課號(hào):,JLabel.CENTER);bo*5.add(課號(hào)1);bo*5.add(查找);修改.addActionListener(this);查找.addActionListener(this);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(bo*

27、1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(Bo*.createVerticalGlue();JPanel picPanel=new JPanel();JPanel messPanel=new JPanel();messPanel.add(bo*5);picPanel.add(bo*H);setLayout(new BorderLayout();JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(split

28、V,BorderLayout.CENTER);validate();刪除界面:DelC.java/DelSC.java /Deltu.java先查找你想要?jiǎng)h除的項(xiàng)目,然后刪除,此外,若刪除C表或則S表的容,會(huì)連同SC表中對應(yīng)的信息一起修改。import java.awt.*;import java.awt.event.*;import java.sql.*;import java*.swing.*;publicclass DelC e*tends JPanel implements ActionListenerString save=null;JTe*tField 課號(hào)1,課號(hào),課名;utto

29、n 刪除,查找;public DelC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);課號(hào)1=new JTe*tField(12);課號(hào)=new JTe*tField(12);課名=new JTe*tField(12);刪除=new utton(刪除);查找=new utton(查找);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo* bo*2=Bo*.crea

30、teHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();Bo* bo*5=Bo*.createHorizontalBo*();bo*1.add(new JLabel(課號(hào):,JLabel.CENTER);bo*1.add(課號(hào));bo*2.add(new JLabel(課名:,JLabel.CENTER);bo*2.add(課名);bo*4.add(刪除);bo*5.add(new JLabel(課號(hào):,JLabel.CENTER);bo*5.add(課號(hào)1);bo*5.ad

31、d(查找);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(bo*1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(Bo*.createVerticalGlue();刪除.addActionListener(this);查找.addActionListener(this);JPanel picPanel=new JPanel();JPanel messPanel=new JPanel();messPanel.add(bo*5);picPanel.add(bo*H);setLayout

32、(new BorderLayout();JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(splitV,BorderLayout.CENTER);validate();查詢界面:Selsto.java可以以任意條件模糊查找相關(guān)的表。import java.awt.*;import java.awt.event.*;import java.sql.*;import java*.swing.*;publicclass Selstu e*tends JPanel implemen

33、ts ActionListenerJTe*tField *,系別;utton 查找;JTe*tField 課號(hào),課名;utton 查找1;JTe*tField 課號(hào)1,*1,成績;utton 查找2;public Selstu ()*=newJTe*tField(12);=new JTe*tField(12);系別=new JTe*tField(12);課號(hào)=new JTe*tField(12);課名=new JTe*tField(12);課號(hào)1=new JTe*tField(12);*1=new JTe*tField(12);成績=new JTe*tField(12);查找=new utto

34、n(查找學(xué)生信息);查找1=new utton(查找課程信息);查找2=new utton(查找選課信息);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo* bo*2=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();Bo* bo*5=Bo*.createHorizontalBo*();Bo* bo*6=Bo*.createHorizontalBo*();Bo* bo*7=Bo*.createHorizontalBo*();bo*1.add(new JLabel(*:,JLabel.

35、CENTER);bo*1.add(*);bo*1.add(new JLabel(:,JLabel.CENTER);bo*1.add();bo*1.add(new JLabel(系別:,JLabel.CENTER);bo*1.add(系別);bo*2.add(查找);bo*4.add(new JLabel(課號(hào):,JLabel.CENTER);bo*4.add(課號(hào));bo*4.add(new JLabel(課名:,JLabel.CENTER);bo*4.add(課名);bo*6.add(查找1);bo*5.add(new JLabel(課號(hào):,JLabel.CENTER);bo*5.add(課

36、號(hào)1);bo*5.add(new JLabel(*:,JLabel.CENTER);bo*5.add(*1);bo*5.add(new JLabel(成績:,JLabel.CENTER);bo*5.add(成績);bo*7.add(查找2);Bo* bo*H1=Bo*.createVerticalBo*();/豎放bo*bo*H1.add(bo*1);bo*H1.add(bo*2);bo*H1.add(Bo*.createVerticalGlue();Bo* bo*H2=Bo*.createVerticalBo*();/豎放bo*bo*H2.add(bo*4);bo*H2.add(bo*6);

37、bo*H2.add(Bo*.createVerticalGlue(); Bo* bo*H3=Bo*.createVerticalBo*();/豎放bo*bo*H3.add(bo*5);bo*H3.add(bo*7);bo*H3.add(Bo*.createVerticalGlue(); 查找.addActionListener(this);查找1.addActionListener(this);查找2.addActionListener(this); JPanel messPanel=new JPanel();JPanel picPanel=new JPanel();JPanel threeP

38、anel=new JPanel();messPanel.add(bo*H1);picPanel.add(bo*H2);threePanel.add(bo*H3);setLayout(new BorderLayout();JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(splitV,BorderLayout.CENTER);JSplitPane splitV1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,splitV,threePane

39、l);/分割add(splitV1,BorderLayout.CENTER);validate();效果圖:下面是java的源代碼,總共有15個(gè)類。分別是AddC.java,AddSC.java,Addstu.java, Delstu.java,DelC.java, DelSC.java,Menu.java,SelC.java,SelSC.java,Selstu.java,Student.java,Updatastu.java,UpdateC.java,UpdateSC.java,User.java。因?yàn)楸救颂珣校砸恍╊惷腻e(cuò)誤沒有修改,也沒有優(yōu)化系統(tǒng),總之還算是能運(yùn)行的,數(shù)據(jù)庫用的是sq

40、l2005,如果用別的數(shù)據(jù)庫就要改驅(qū)動(dòng),具體自己上網(wǎng)百度吧。如果自己有空,優(yōu)化一下還是很好滴AddC.jaba:import java.awt.*;import java*.swing.*;import java.sql.*;import java.awt.event.*;public class AddC e*tends JPanel implements ActionListenerJTe*tField 課號(hào),課名;utton 錄入;public AddC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassNa

41、me();catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);課號(hào)=new JTe*tField(12);課名=new JTe*tField(12);錄入=new utton(錄入);錄入.addActionListener(this);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo* bo*2=Bo*.createHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();bo*1.add(new

42、 JLabel(課號(hào):);bo*1.add(課號(hào));bo*2.add(new JLabel(課名:);bo*2.add(課名);bo*4.add(錄入);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(bo*1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(Bo*.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(bo*H);setLayout(new BorderLayout();add(messPan

43、el,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Object obj=c.getSource();if(obj=錄入)if(課號(hào).getTe*t().equals()|課名.getTe*t().equals()JOptionPane.showMessageDialog(this,學(xué)生信息請?zhí)顫M再錄入! );Statement stmt=null;ResultSet rs=null,rs1=null;String sql,sql1; sql1=select * from C where o=

44、+課號(hào).getTe*t()+; sql=insert into C values(+課號(hào).getTe*t()+,+課名.getTe*t()+); try Connection dbConn1=CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs1=stmt.e*ecuteQuery(sql1);if(rs1.ne*t()JOptionPane.showMessageDialog(this,該課號(hào)以存在,無法添加);elsest

45、mt.e*ecuteUpdate(sql);JOptionPane.showMessageDialog(this,添加成功);rs1.close();stmt.close(); catch(SQLE*ception e) System.out.print(SQL E*ception occur.Message is:+e.getMessage(); /連接數(shù)據(jù)庫方法public static Connection CONN() String driverName = .microsoft.sqlserver.jdbc.SQLServerDriver; /加載JDBC驅(qū)動(dòng) String dbUR

46、L = jdbc:sqlserver:/localhost:1433; DatabaseName=student; /連接服務(wù)器和數(shù)據(jù)庫test String userName = sa; /默認(rèn)用戶名 String userPwd = huangjiwei; /密碼 Connection dbConn=null; try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println(Connection Successful!); /如

47、果連接成功 控制臺(tái)輸出Connection Successful! catch (E*ception e) e.printStackTrace(); return dbConn;AddSC.java:import java.awt.*;import java*.swing.*;import java.sql.*;import java.util.*;import java*.swing.filechooser.*;import java.io.*;import java.awt.event.*;public class AddSC e*tends JPanel implements Actio

48、nListenerJTe*tField 課號(hào),*,成績;utton 錄入;public AddSC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);課號(hào)=new JTe*tField(12);*=new JTe*tField(12);成績=new JTe*tField(12);錄入=new utton(錄入);錄入.addActionListener(this);Bo* bo*1=Bo*.createH

49、orizontalBo*();/橫放bo*Bo* bo*2=Bo*.createHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*();bo*1.add(new JLabel(課號(hào):);bo*1.add(課號(hào));bo*2.add(new JLabel(*:);bo*2.add(*);bo*3.add(new JLabel(成績:);bo*3.add(成績);bo*4.add(錄入);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(b

50、o*1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(Bo*.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(bo*H);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Object obj=c.getSource();if(obj=錄入)if(課號(hào).getTe*t(

51、).equals()|*.getTe*t().equals()JOptionPane.showMessageDialog(this,填寫課號(hào)與*才能錄入! );elseStatement stmt=null;ResultSet rs=null,rs1=null,rsC=null,rsS=null;String sql,sql1,sqlS,sqlC; sqlC=select * from C where o=+課號(hào).getTe*t()+; sqlS=select * from S where Sno=+*.getTe*t()+; sql1=select * from SC where o=+課號(hào)

52、.getTe*t()+ and Sno=+*.getTe*t()+; sql=insert into SC values(+課號(hào).getTe*t()+,+*.getTe*t()+,+成績.getTe*t()+); try Connection dbConn1=CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rsC=stmt.e*ecuteQuery(sqlC);if(rsC.ne*t()rsS=stmt.e*ecuteQuer

53、y(sqlS);if(rsS.ne*t()rs1=stmt.e*ecuteQuery(sql1);if(rs1.ne*t()JOptionPane.showMessageDialog(this,該學(xué)生以選該課程號(hào),無法添加);elsestmt.e*ecuteUpdate(sql);JOptionPane.showMessageDialog(this,添加成功);rs1.close();elseJOptionPane.showMessageDialog(this,該學(xué)生不存在,無法添加);rsS.close();elseJOptionPane.showMessageDialog(this,該課程

54、不存在,無法添加);rsC.close();stmt.close(); catch(SQLE*ception e) System.out.print(SQL E*ception occur.Message is:+e.getMessage(); /連接數(shù)據(jù)庫方法public static Connection CONN() String driverName = .microsoft.sqlserver.jdbc.SQLServerDriver; /加載JDBC驅(qū)動(dòng) String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=stud

55、ent; /連接服務(wù)器和數(shù)據(jù)庫test String userName = sa; /默認(rèn)用戶名 String userPwd = huangjiwei; /密碼 Connection dbConn=null; try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println(Connection Successful!); /如果連接成功 控制臺(tái)輸出Connection Successful! catch (E*ception e)

56、 e.printStackTrace(); return dbConn;Addstu.jaba:import java.awt.*;import java*.swing.*;import java.sql.*;import java.awt.event.*;public class Addstu e*tends JPanel implements ActionListenerJTe*tField *,系別;utton 錄入;public Addstu()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();

57、catch(E*ception e)System.err.println(不能設(shè)置外觀: +e);*=new JTe*tField(12);=new JTe*tField(12);系別=new JTe*tField(12);錄入=new utton(錄入);錄入.addActionListener(this);Bo* bo*1=Bo*.createHorizontalBo*();/橫放bo*Bo* bo*2=Bo*.createHorizontalBo*();Bo* bo*3=Bo*.createHorizontalBo*();Bo* bo*4=Bo*.createHorizontalBo*(

58、);bo*1.add(new JLabel(*:/*,JLabel.CENTER*/);bo*1.add(*);bo*2.add(new JLabel(:/*,JLabel.CENTER*/);bo*2.add();bo*3.add(new JLabel(系別:/*,JLabel.CENTER*/);bo*3.add(系別);bo*4.add(錄入);Bo* bo*H=Bo*.createVerticalBo*();/豎放bo*bo*H.add(bo*1);bo*H.add(bo*2);bo*H.add(bo*3);bo*H.add(bo*4);bo*H.add(Bo*.createVerti

59、calGlue();JPanel messPanel=new JPanel();messPanel.add(bo*H);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Object obj=c.getSource();if(obj=錄入)if(*.getTe*t().equals()|.getTe*t().equals()|系別.getTe*t().equals()JOptionPane.showMessage

60、Dialog(this,學(xué)生信息請?zhí)顫M再錄入! );Statement stmt=null;ResultSet rs1=null;String sql,sql1; sql1=select * from S where Sno=+*.getTe*t()+; sql=insert into S values(+*.getTe*t()+,+.getTe*t()+,+系別.getTe*t()+); try Connection dbConn1=CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE

溫馨提示

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

評論

0/150

提交評論