Java创建图形界面(GUI),创建一个学生管理界面连接数据库,实现录入,查询,删除,更改等操作
时间: 2024-03-11 16:50:41 浏览: 68
java-利用GUI实现窗口学生管理系统(jdbc连接数据库-MySQL)
5星 · 资源好评率100%
好的,这是一个比较大的问题,我会尽力回答。
首先,你需要了解Java中GUI的开发方式,通常有两种:Swing和JavaFX。本回答将以Swing为例,因为它是一个较为成熟的GUI库,并且在学校、公司等场景中仍然比较常用。
接下来,你需要学习如何连接数据库。Java中比较常用的数据库有MySQL、Oracle、SQLite等,你可以根据自己的需求选择不同的数据库。这里以MySQL为例,你需要下载MySQL JDBC驱动,并在代码中引入。
下面是一个简单的示例代码,实现了学生管理界面连接MySQL数据库,实现了录入、查询、删除、更改等操作:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class StudentManagement extends JFrame implements ActionListener {
private JLabel nameLabel, ageLabel, genderLabel, idLabel;
private JTextField nameField, ageField, genderField, idField;
private JButton addButton, searchButton, deleteButton, updateButton;
private JPanel panel;
private Connection conn;
private Statement stmt;
public StudentManagement() {
nameLabel = new JLabel("姓名");
ageLabel = new JLabel("年龄");
genderLabel = new JLabel("性别");
idLabel = new JLabel("学号");
nameField = new JTextField(10);
ageField = new JTextField(10);
genderField = new JTextField(10);
idField = new JTextField(10);
addButton = new JButton("添加");
searchButton = new JButton("查询");
deleteButton = new JButton("删除");
updateButton = new JButton("更新");
addButton.addActionListener(this);
searchButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
panel = new JPanel(new GridLayout(5, 2));
panel.add(nameLabel);
panel.add(nameField);
panel.add(ageLabel);
panel.add(ageField);
panel.add(genderLabel);
panel.add(genderField);
panel.add(idLabel);
panel.add(idField);
panel.add(addButton);
panel.add(searchButton);
panel.add(deleteButton);
panel.add(updateButton);
add(panel, BorderLayout.CENTER);
setTitle("学生管理系统");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
stmt = conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String id = idField.getText();
String sql = "insert into student values('" + id + "','" + name + "'," + age + ",'" + gender + "')";
try {
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "添加成功");
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "添加失败");
}
} else if (e.getSource() == searchButton) {
String id = idField.getText();
String sql = "select * from student where id='" + id + "'";
try {
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
nameField.setText(rs.getString(2));
ageField.setText(String.valueOf(rs.getInt(3)));
genderField.setText(rs.getString(4));
} else {
JOptionPane.showMessageDialog(null, "查无此人");
}
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "查询失败");
}
} else if (e.getSource() == deleteButton) {
String id = idField.getText();
String sql = "delete from student where id='" + id + "'";
try {
int n = stmt.executeUpdate(sql);
if (n > 0) {
JOptionPane.showMessageDialog(null, "删除成功");
nameField.setText("");
ageField.setText("");
genderField.setText("");
} else {
JOptionPane.showMessageDialog(null, "删除失败");
}
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "删除失败");
}
} else if (e.getSource() == updateButton) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String id = idField.getText();
String sql = "update student set name='" + name + "',age=" + age + ",gender='" + gender + "' where id='" + id + "'";
try {
int n = stmt.executeUpdate(sql);
if (n > 0) {
JOptionPane.showMessageDialog(null, "更新成功");
} else {
JOptionPane.showMessageDialog(null, "更新失败");
}
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "更新失败");
}
}
}
public static void main(String[] args) {
new StudentManagement();
}
}
```
在代码中,我们先创建了一个JFrame窗口,然后添加了标签、文本框和按钮等控件,最终组成了一个简单的学生管理界面。同时,在构造函数中,我们还建立了与MySQL数据库的连接,并创建了Statement对象,用于执行SQL语句。在actionPerformed方法中,我们根据不同的按钮,执行不同的操作,例如添加、查询、删除、更新等。其中,我们使用了JOptionPane类来弹出对话框,提示用户操作结果。
当然,这只是一个简单的示例代码,实际开发中还需要考虑更多的问题,例如界面美观度、异常处理、数据校验、批量操作等。但是,通过这个示例代码,相信你已经初步了解了Java创建GUI并连接数据库的过程,希望对你有所帮助。
阅读全文