Java+学生信息管理系统+GUI+mysql 实现添加学生、删除学生、查询学生信息代码
时间: 2024-01-16 08:02:17 浏览: 26
以下是Java实现学生信息管理系统的示例代码,包括GUI界面和mysql数据库操作。代码实现了添加学生、删除学生、查询学生信息的功能。
要运行此代码,需要安装mysql数据库和Java开发环境,并在mysql中创建名为“student”的数据库,其中包含名为“stu_info”的表,表结构如下:
CREATE TABLE `stu_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`major` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
代码如下:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class StudentManagementSystem extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
Container container = getContentPane();
JLabel titleLabel = new JLabel("学生信息管理系统");
JLabel nameLabel = new JLabel("姓名:");
JLabel genderLabel = new JLabel("性别:");
JLabel ageLabel = new JLabel("年龄:");
JLabel majorLabel = new JLabel("专业:");
JTextField nameField = new JTextField();
JTextField genderField = new JTextField();
JTextField ageField = new JTextField();
JTextField majorField = new JTextField();
JButton addButton = new JButton("添加");
JButton deleteButton = new JButton("删除");
JButton queryButton = new JButton("查询");
JTextArea resultArea = new JTextArea();
public StudentManagementSystem() {
setLayoutManager();
setLocationAndSize();
addComponentsToContainer();
addActionEvent();
executeSQL("CREATE TABLE IF NOT EXISTS stu_info (id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), gender VARCHAR(10), age INT(11), major VARCHAR(50))");
}
public void setLayoutManager() {
container.setLayout(null);
}
public void setLocationAndSize() {
titleLabel.setBounds(180, 10, 200, 30);
nameLabel.setBounds(50, 70, 100, 30);
genderLabel.setBounds(50, 110, 100, 30);
ageLabel.setBounds(50, 150, 100, 30);
majorLabel.setBounds(50, 190, 100, 30);
nameField.setBounds(150, 70, 150, 30);
genderField.setBounds(150, 110, 150, 30);
ageField.setBounds(150, 150, 150, 30);
majorField.setBounds(150, 190, 150, 30);
addButton.setBounds(50, 250, 100, 30);
deleteButton.setBounds(180, 250, 100, 30);
queryButton.setBounds(310, 250, 100, 30);
resultArea.setBounds(50, 300, 360, 200);
}
public void addComponentsToContainer() {
container.add(titleLabel);
container.add(nameLabel);
container.add(genderLabel);
container.add(ageLabel);
container.add(majorLabel);
container.add(nameField);
container.add(genderField);
container.add(ageField);
container.add(majorField);
container.add(addButton);
container.add(deleteButton);
container.add(queryButton);
container.add(resultArea);
}
public void addActionEvent() {
addButton.addActionListener(this);
deleteButton.addActionListener(this);
queryButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
String name = nameField.getText();
String gender = genderField.getText();
String age = ageField.getText();
String major = majorField.getText();
executeSQL("INSERT INTO stu_info(name, gender, age, major) VALUES('" + name + "', '" + gender + "', '" + age + "', '" + major + "')");
nameField.setText("");
genderField.setText("");
ageField.setText("");
majorField.setText("");
resultArea.setText("添加成功!");
} else if (e.getSource() == deleteButton) {
String name = nameField.getText();
executeSQL("DELETE FROM stu_info WHERE name='" + name + "'");
nameField.setText("");
genderField.setText("");
ageField.setText("");
majorField.setText("");
resultArea.setText("删除成功!");
} else if (e.getSource() == queryButton) {
String name = nameField.getText();
ResultSet rs = executeQuery("SELECT * FROM stu_info WHERE name='" + name + "'");
try {
if (rs.next()) {
String gender = rs.getString("gender");
String age = rs.getString("age");
String major = rs.getString("major");
genderField.setText(gender);
ageField.setText(age);
majorField.setText(major);
resultArea.setText("查询成功!");
} else {
resultArea.setText("未查询到该学生!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public void executeSQL(String sql) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "123456");
stmt = conn.createStatement();
stmt.executeUpdate(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public ResultSet executeQuery(String sql) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "123456");
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static void main(String[] args) {
StudentManagementSystem frame = new StudentManagementSystem();
frame.setTitle("学生信息管理系统");
frame.setVisible(true);
frame.setBounds(100, 100, 500, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
}
}
```