學生選課系統(tǒng)(連接Mysql數(shù)據(jù)庫).doc_第1頁
學生選課系統(tǒng)(連接Mysql數(shù)據(jù)庫).doc_第2頁
學生選課系統(tǒng)(連接Mysql數(shù)據(jù)庫).doc_第3頁
學生選課系統(tǒng)(連接Mysql數(shù)據(jù)庫).doc_第4頁
學生選課系統(tǒng)(連接Mysql數(shù)據(jù)庫).doc_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品/*JDBC連接數(shù)據(jù)庫*/package immoc4.bao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBC private static final String URL = jdbc:mysql:/localhost:3306/a?characterEncoding=utf8;private static final Str

2、ing USER = root;private static final String PASSWORD = 995923;private static Connection conn = null;static try Class.forName(com.mysql.jdbc.Driver);conn = DriverManager.getConnection(URL, USER, PASSWORD); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(

3、);public static Connection getConnection() return conn;/*登錄界面*/package immoc4.bao;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.SQLException;import java.util.Scanner;import javax.swing.JButton;import javax.swing.JFrame;import javax.

4、swing.JLabel;import javax.swing.JTextField;public class View extends JFramestatic GongNeng gn = new GongNeng();static Student s = new Student();static JTextField text1;static JTextField text2;static JButton button; public void denglu()setLayout(new FlowLayout();add(new JLabel(用戶id:);text1 = new JTex

5、tField(20);add(text1);add(new JLabel(密碼:);text2 = new JTextField(20);add(text2);button = new JButton(登錄);add(button); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /關閉窗口 public static void main(String args)View dl = new View();dl.setBounds(300, 300, 300, 200);dl.setTitle(學生選課管理系統(tǒng)

6、);dl.denglu(); button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub dl.dispose(); s.setStudent_id(Integer.parseInt(text1.getText(); s.setStudent_code(text2.getText(); try gn.correspond(s); catch (SQLException e1) / TODO Auto-gener

7、ated catch blocke1.printStackTrace(); ); /*主界面*/package immoc4.bao;import javax.swing.*;import immoc4.bao.Course;import java.awt.*;import java.awt.event.*;import java.sql.SQLException;public class Card extends JFrame /* * JFrame的布局管理器是BorderLayout */Course g = new Course();GongNeng gn = new GongNeng

8、(); JPanel p;/位于中心區(qū)域的面板 JButton b1,b2,b3,b4;/位于北部區(qū)域的四個按鈕 JButton add; JButton delete; JButton update; JButton query; JLabel add_id,add_name,add_teacher_name; JLabel delete_id; JLabel update_id,update_name,update_teacher_name; JLabel query_id; JLabel query_show; JTextField text_add_id,text_add_name,t

9、ext_add_teacher_name; JTextField text_delete_id; JTextField text_update_id,text_update_name,text_update_teacher_name; JTextField text_query_id; JTextArea area_query_show; CardLayout c;/設置面板p的布局 Card() super(); this.setVisible(true); this.setBounds(400,300,400,300); p = new JPanel();/實例化p c = new Car

10、dLayout();/實例化c p.setLayout(c);/設置面板p的布局為c,等價于p = new JPanel(c); /實例化4個按鈕和標簽 b1 = new JButton(添加課程); b2 = new JButton(刪除課程); b3 = new JButton(修改課程); b4 = new JButton(查詢課程); /實例化4個子面板并設定相應背景顏色 JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); / p1

11、.setLayout( p1.setBackground(Color.green); p2.setBackground(Color.pink); p3.setBackground(Color.orange); p4.setBackground(Color.lightGray); /把上面4個面板添加到中心面板p中,并把4個面板分別用編號為1,2,3,4代替 p.add(p1,1); p.add(p2,2); p.add(p3,3); p.add(p4,4); /實例化位于南部區(qū)域的面板,并添加4個按鈕 JPanel pnorth = new JPanel(); pnorth.add(b1);

12、pnorth.add(b2); pnorth.add(b3); pnorth.add(b4); /把p,psourth分別添加到本JFrame的中心區(qū)域和南部區(qū)域 this.add(p);/等價于this.add(p,BorderLayout.CENTER); 因為默認是把組件添加到中部 this.add(pnorth,BorderLayout.NORTH); / 添加課程 add_id = new JLabel(課程號); text_add_id = new JTextField(30); add_name = new JLabel(課程名); text_add_name = new JTe

13、xtField(30); add_teacher_name = new JLabel(教師名); text_add_teacher_name = new JTextField(30); add = new JButton(添加); /為按鈕b1添加監(jiān)聽器,當被按下時顯示面板p中的前一個子面板 b1.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub c.show(p,1);/顯示p中的上一個面板 p

14、1.add(add_id); p1.add(text_add_id); p1.add(add_name); p1.add(text_add_name); p1.add(add_teacher_name); p1.add(text_add_teacher_name); p1.add(add); setVisible(true); ); add.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubg.setI

15、d(Integer.parseInt(text_add_id.getText();g.setName(text_add_name.getText();g.setTeacher_name(text_add_teacher_name.getText();try gn.addcourse(g); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace(); ); /刪除課程 delete_id = new JLabel(課程號); text_delete_id = new JTextField(20); del

16、ete = new JButton(刪除); /為按鈕b2添加監(jiān)聽器,當被按下時顯示面板p中的第2個子面板 b2.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub c.show(p, 2);/顯示p中代號為2的面板 p2.add(delete_id); p2.add(text_delete_id) ; p2.add(delete); setVisible(true); ); delete.addA

17、ctionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub int id = Integer.parseInt(text_delete_id.getText();try gn.delCourse(id); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();); / 修改課程 update_id = new JLab

18、el(課程號); text_update_id = new JTextField(30); update_name = new JLabel(課程名); text_update_name = new JTextField(30); update_teacher_name = new JLabel(教師名); text_update_teacher_name = new JTextField(30); update = new JButton(修改); /以下類推 b3.addActionListener(new ActionListener() Override public void act

19、ionPerformed(ActionEvent e) / TODO Auto-generated method stub c.show(p, 3); p3.add(update_id); p3.add(text_update_id); p3.add(update_name); p3.add(text_update_name); p3.add(update_teacher_name); p3.add(text_update_teacher_name); p3.add(update); setVisible(true); ); update.addActionListener(new Actio

20、nListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubint id = Integer.parseInt(text_update_id.getText();g.setId(Integer.parseInt(text_update_id.getText();g.setName(text_update_name.getText();g.setTeacher_name(text_update_teacher_name.getText();try gn.update

21、course(g); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();); /查詢課程 query_id = new JLabel(課程號); text_query_id = new JTextField(20); query = new JButton(查詢); b4.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generat

22、ed method stub c.show(p,4); p4.add(query_id); p4.add(text_query_id); p4.add(query); setVisible(true); ); query.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubint id = Integer.parseInt(text_query_id.getText();try gn.get(id); c

23、atch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(););/*底層增刪改查功能*/package immoc4.bao;import java.awt.FlowLayout;import java.io.ByteArrayInputStream;import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQL

24、Exception;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.swing.JLabel;import javax.swing.JTextField;public class GongNeng Cue cue = new Cue();/添加課程功能public void addcourse(Course g) throws Exception List result = new ArrayList();Connection conn = JDBC.getConnection

25、();StringBuilder sb = new StringBuilder();sb.append(select * from student_course );PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成,用while循環(huán)來表示結(jié)果集int x = 1;while (rs.next() if(g.getId() = rs.getInt(id) /當輸入的課程號不存

26、在的異常處理 x = 0;if(x=1)ptmt = conn.prepareStatement(insert into student_course(id,name,teacher_name) values(?,?,?);/ SPreparedStatement是SQL語句被預編譯并存儲在 PreparedStatement/ 對象中。然后可以使用此對象多次高效地執(zhí)行該語句ptmt.setInt(1, g.getId();ptmt.setString(2,g.getName();ptmt.setString(3, g.getTeacher_name();ptmt.execute();else

27、cue.denglu(對不起,你輸入的課程號已存在,請重新輸入);/修改課程功能public void updatecourse(Course g) throws SQLException List result = new ArrayList();Connection conn = JDBC.getConnection();StringBuilder sb = new StringBuilder();sb.append(select * from student_course );PreparedStatement ptmt = conn.prepareStatement(sb.toStri

28、ng();ResultSet rs = ptmt.executeQuery();/ ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成/ 用while循環(huán)來表示結(jié)果集int x = 0;while (rs.next() if(g.getId() = rs.getInt(id) /當輸入的課程號不存在的異常處理 x = 1;if(x=1)ptmt = conn.prepareStatement(update student_course set name = ?,teacher_name = ? where id = ?);ptmt.setString(1, g.get

29、Name();ptmt.setString(2, g.getTeacher_name();ptmt.setInt(3, g.getId();ptmt.execute();elsecue.denglu(對不起,你輸入的課程號不存在,請重新輸入);/刪除課程功能public void delCourse(int id) throws SQLException List result = new ArrayList();Connection conn = JDBC.getConnection();StringBuilder sb = new StringBuilder();sb.append(sel

30、ect * from student_course );PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成/ 用while循環(huán)來表示結(jié)果集int x = 0;while (rs.next() if(id = rs.getInt(id) /當輸入的課程號不存在的異常處理 x = 1;if(x=1) ptmt = conn.prepareStatement( delete fro

31、m student_course + where id=?);ptmt.setInt(1, id);ptmt.execute();elsecue.denglu(你輸入的課程號不存在,請重新輸入);查詢課程功能public void get(Integer id) throws SQLException List result = new ArrayList();Connection conn = JDBC.getConnection();StringBuilder sb = new StringBuilder();sb.append(select * from student_course )

32、;PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成/ 用while循環(huán)來表示結(jié)果集int x = 0;while (rs.next() if(id = rs.getInt(id) /當輸入的課程號不存在的異常處理 x = 1;if(x=1)Course g = null;Connection conn1 = JDBC.getConnection();String sql =

33、 + select * from student_course + where id=? ;PreparedStatement ptmt1 = conn.prepareStatement(sql);ptmt1.setInt(1, id);ResultSet rs1 = ptmt.executeQuery();while (rs1.next() g = new Course();g.setId(rs1.getInt(id);g.setName(rs1.getString(name);g.setTeacher_name(rs1.getString(teacher_name);System.out.

34、println(id = + g.getId() + ,name = + g.getName() + ,teacher_name = + g.getTeacher_name() + );else cue.denglu(對不去,你輸入的課程號不存在,請重新輸入);/匹配登錄名與密碼是否符合用戶 public void correspond(Student s) throws SQLException List result = new ArrayList();Connection conn = JDBC.getConnection();StringBuilder sb = new StringB

35、uilder();sb.append(select * from student );PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成/ 用while循環(huán)來表示結(jié)果集int x = 0;while (rs.next() if(s.getStudent_id() = rs.getInt(student_id)&s.getStudent_code().equals(rs.get

36、String(student_code) x = 1;break;if(s.getStudent_id() = rs.getInt(student_id)if(s.getStudent_code().equals(rs.getString(student_code)=false)x = 3; break;if(s.getStudent_id() != rs.getInt(student_id)x = 2;if(x = 1) Card cd = new Card();if(x = 2)cue.denglu(用戶不存在,請重新輸入);if(x = 3)cue.denglu(您輸入的密碼有誤,請重新輸入); /*定義課程類*/package immoc4.bao;public class Course private int id;private String name;private String teacher_name;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) this.n

溫馨提示

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

最新文檔

評論

0/150

提交評論