学生选课系统(连接Mysql数据库)

上传人:su****e 文档编号:207523808 上传时间:2023-05-06 格式:DOCX 页数:18 大小:162.25KB
收藏 版权申诉 举报 下载
学生选课系统(连接Mysql数据库)_第1页
第1页 / 共18页
学生选课系统(连接Mysql数据库)_第2页
第2页 / 共18页
学生选课系统(连接Mysql数据库)_第3页
第3页 / 共18页
资源描述:

《学生选课系统(连接Mysql数据库)》由会员分享,可在线阅读,更多相关《学生选课系统(连接Mysql数据库)(18页珍藏版)》请在装配图网上搜索。

1、/*JDBC连接数据库*/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 Strin

2、g 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.sw

4、ing.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 JTextF

5、ield(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(学生选课管理系统);

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-generat

7、ed 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;/位于中心区域的面板 JButton b1,b2,b3,b4;/位于北部区域的四个按钮 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,tex

9、t_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 CardL

10、ayout();/实例化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.s

11、etLayout( 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); /实例化位于南部区域的面板,并添加4个按钮 JPanel pnorth = new JPanel(); pnorth.add(b1); pn

12、orth.add(b2); pnorth.add(b3); pnorth.add(b4); /把p,psourth分别添加到本JFrame的中心区域和南部区域 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 JText

13、Field(30); add_teacher_name = new JLabel(教师名); text_add_teacher_name = new JTextField(30); add = new JButton(添加); /为按钮b1添加监听器,当被按下时显示面板p中的前一个子面板 b1.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub c.show(p,1);/显示p中的上一个面板 p1.

14、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.setId(

15、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); delet

16、e = new JButton(删除); /为按钮b2添加监听器,当被按下时显示面板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.addAct

17、ionListener(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 JLabel

18、(课程号); 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 actio

19、nPerformed(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 ActionL

20、istener() 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.updateco

21、urse(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-generated

22、 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); cat

23、ch (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.SQLEx

24、ception;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表示数据库结果集的数据表,通常通过执行查询数据库的语句生成,用while循环来表示结果集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/ 对象中。然后可以使用此对象多次高效地执行该语句ptmt.setInt(1, g.getId();ptmt.setString(2,g.getName();ptmt.setString(3, g.getTeacher_name();ptmt.execute();elsecu

27、e.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.toString

28、();ResultSet rs = ptmt.executeQuery();/ ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成/ 用while循环来表示结果集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.getNa

29、me();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(selec

30、t * from student_course );PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成/ 用while循环来表示结果集int x = 0;while (rs.next() if(id = rs.getInt(id) /当输入的课程号不存在的异常处理 x = 1;if(x=1) ptmt = conn.prepareStatement( delete from

31、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 );P

32、reparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成/ 用while循环来表示结果集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.pr

34、intln(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 StringBui

35、lder();sb.append(select * from student );PreparedStatement ptmt = conn.prepareStatement(sb.toString();ResultSet rs = ptmt.executeQuery();/ ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成/ 用while循环来表示结果集int x = 0;while (rs.next() if(s.getStudent_id() = rs.getInt(student_id)&s.getStudent_code().equals(rs.getSt

36、ring(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(您输入的密码有误,请重新输入

37、); /*定义课程类*/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.name = name;public String getTeacher_name()

38、return teacher_name;public void setTeacher_name(String teacher_name) this.teacher_name = teacher_name;public String toString() return Course(id = + id + ,name = + name + ,teacher_name = + teacher_name + ); /*定义学生类*/package immoc4.bao;public class Student private int student_id;private String student

39、_name;private String student_code;public int getStudent_id() return student_id;public void setStudent_id(int student_id) this.student_id = student_id;public String getStudent_name() return student_name;public void setStudent_name(String student_name) this.student_name = student_name;public String ge

40、tStudent_code() return student_code;public void setStudent_code(String student_code) this.student_code = student_code;public String toString() return Student(id = + student_id + ,name = + student_name + ,code = + student_code + );/*将错误提示单独写成一个界面*/package immoc4.bao;package immoc4.bao;import java.awt.FlowLayout;import javax.swing.JFrame;import javax.swing.JLabel;public class Cue extends View public void denglu(String a) setLayout(new FlowLayout(); setBounds(300, 300, 300, 200); setTitle(!错误提示); add(new JLabel(a);/提示用标签Jlabel表示,a是错误提示的具体内容 setVisible(true);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!