您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页学生选课系统(连接Mysql数据库)

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

来源:易妖游戏网
/*

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 String 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(); } } 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.swing.JLabel; import javax.swing.JTextField;

public class View extends JFrame{ static 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 JTextField(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(\"学生选课管理系统\"); 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-generated catch block e1.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(); 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,text_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 CardLayout();//实例化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.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\");

//实例化位于南部区域的面板,并添加4个按钮 JPanel pnorth = new JPanel();

pnorth.add(b1); pnorth.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 JTextField(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.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(){ @Override

});

public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub g.setId(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 block e1.printStackTrace(); } }

//删除课程

delete_id = new JLabel(\"课程号\"); text_delete_id = new JTextField(20);

delete = 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.addActionListener(new ActionListener(){ @Override public 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 block e1.printStackTrace(); }

// 修改课程

update_id = new JLabel(\"课程号\"); 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 actionPerformed(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 ActionListener() {

@Override

public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub int 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.updatecourse(g); } catch (SQLException e1) { // TODO Auto-generated catch block e1.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 method stub c.show(p,\"4\"); p4.add(query_id);

p4.add(text_query_id); p4.add(query); setVisible(true); } });

query.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub int id = Integer.parseInt(text_query_id.getText());

/*

} });

try { gn.get(id);

} catch (SQLException e1) { // TODO Auto-generated catch block e1.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.SQLException; 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(); StringBuilder sb = new StringBuilder(); sb.append(\"select * from student_course \");

PreparedStatement ptmt = conn.prepareStatement(sb.toString()); ResultSet rs = ptmt.executeQuery();// ResultSet表示数据库结果集的数据int x = 1;

while (rs.next()) {

if(g.getId() == rs.getInt(\"id\")){ //当输入的课程号不存在的异常处理 x = 0; }

//添加课程功能

表,通常通过执行查询数据库的语句生成,用while循环来表示结果集

} } }

if(x==1){

ptmt = conn.prepareStatement(\"insert into

// SPreparedStatement是SQL语句被预编译并存储在 PreparedStatement // 对象中。然后可以使用此对象多次高效地执行该语句 ptmt.setInt(1, g.getId()); ptmt.setString(2,g.getName());

ptmt.setString(3, g.getTeacher_name()); ptmt.execute();

cue.denglu(\"对不起,你输入的课程号已存在,请重新输入\");

student_course(id,name,teacher_name) values(?,?,?)\");

}else{

public void updatecourse(Course g) throws SQLException { }

if(x==1){ ptmt = conn

.prepareStatement(\"update student_course set name

List result = new ArrayList(); Connection conn = JDBC.getConnection(); StringBuilder sb = new StringBuilder(); sb.append(\"select * from student_course \");

PreparedStatement ptmt = conn.prepareStatement(sb.toString()); ResultSet rs = ptmt.executeQuery();// ResultSet表示数据库结果集的数据// 用while循环来表示结果集 int x = 0;

while (rs.next()) {

if(g.getId() == rs.getInt(\"id\")){ //当输入的课程号不存在的异常处理 x = 1; }

//修改课程功能

表,通常通过执行查询数据库的语句生成

= ?,teacher_name = ? where id = ?\");

ptmt.setString(1, g.getName());

ptmt.setString(2, g.getTeacher_name()); ptmt.setInt(3, g.getId()); ptmt.execute();

cue.denglu(\"对不起,你输入的课程号不存在,请重新输入\");

}else{

} }

public void delCourse(int id) throws SQLException { }

if(x==1){

ptmt = conn.prepareStatement(\" delete from student_course\" + \" where } }

ptmt.setInt(1, id); ptmt.execute();

cue.denglu(\"你输入的课程号不存在,请重新输入\"); List result = new ArrayList(); Connection conn = JDBC.getConnection(); StringBuilder sb = new StringBuilder(); sb.append(\"select * 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; }

//删除课程功能

表,通常通过执行查询数据库的语句生成

id=?\");

}else{

查询课程功能

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 \");

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){ Course g = null;

Connection conn1 = JDBC.getConnection();

String sql = \"\" + \" select * from student_course \" + \" where id=? \"; PreparedStatement ptmt1 = conn.prepareStatement(sql); ptmt1.setInt(1, id);

ResultSet rs1 = ptmt.executeQuery(); while (rs1.next()) { }

System.out.println(

cue.denglu(\"对不去,你输入的课程号不存在,请重新输入\");

\"id =\" + g.getId() + \" ,name = \" + g.getName() + \g = new Course();

g.setId(rs1.getInt(\"id\")); g.setName(rs1.getString(\"name\"));

g.setTeacher_name(rs1.getString(\"teacher_name\"));

= \" + g.getTeacher_name() + \"\");

}else{

//匹配登录名与密码是否符合用户

public void correspond(Student s) throws SQLException{

List result = new ArrayList();

Connection conn = JDBC.getConnection(); StringBuilder sb = new StringBuilder(); 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.getString(\"student_code\"))) { }

}

if(x == 1){ }

if(x == 2){ }

if(x == 3){ }

cue.denglu(\"您输入的密码有误,请重新输入\");

cue.denglu(\"用户不存在,请重新输入\"); Card cd = new Card(); } }

if(s.getStudent_id() != rs.getInt(\"student_id\")){ }

x = 2; break; x = 3;

}

if(s.getStudent_id() == rs.getInt(\"student_id\")){

x = 1; break;

if(s.getStudent_code().equals(rs.getString(\"student_code\"))==false){

}

/*

定义课程类 */

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) { }

public String getName() { }

public void setName(String name) { }

public String getTeacher_name() { }

public void setTeacher_name(String teacher_name) { }

public String toString() { }

return \"Course(id =\" + id + \ + name + \ + this.teacher_name = teacher_name; return teacher_name; this.name = name; return name; this.id = id;

teacher_name + \")\";

/*

定义学生类 */

package immoc4.bao;

public class Student {

public int getStudent_id() { }

return student_id; private int student_id; private String student_name; private String student_code;

}

public void setStudent_id(int student_id) { }

public String getStudent_name() { }

public void setStudent_name(String student_name) { }

public String getStudent_code() { }

public void setStudent_code(String student_code) { }

public String toString() { }

return \"Student(id =\" + student_id + \= \" + student_name + his.student_code = student_code; return student_code;

this.student_name = student_name; return student_name;

this.student_id = student_id;

= \" + 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); } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务