用java设计一个可以从数据库查询学生信息的系统
时间: 2024-01-11 10:05:21 浏览: 92
好的,以下是一个简单的Java学生信息查询系统的设计:
1. 首先需要创建一个MySQL数据库,然后创建一个名为"students"的表,包含以下字段:id、name、age、gender、major。
2. 在Java中使用JDBC连接数据库,执行SQL语句查询学生信息。
3. 使用Swing框架创建一个窗口,包含以下组件:
- JTextField:用于输入查询条件
- JButton:用于触发查询操作
- JTable:用于显示查询结果
4. 当用户点击查询按钮时,从JTextField中获取查询条件,然后使用JDBC执行SQL语句查询符合条件的学生信息,并将结果显示在JTable中。
以下是示例代码:
```
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.sql.*;
public class StudentInfoSystem extends JFrame {
private JTextField textField;
private JButton searchButton;
private JTable table;
private DefaultTableModel tableModel;
public StudentInfoSystem() {
setTitle("学生信息查询系统");
setSize(500, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// 创建组件
textField = new JTextField();
searchButton = new JButton("查询");
table = new JTable();
JScrollPane scrollPane = new JScrollPane(table);
// 将组件添加到窗口中
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(textField, BorderLayout.NORTH);
panel.add(searchButton, BorderLayout.CENTER);
panel.add(scrollPane, BorderLayout.SOUTH);
getContentPane().add(panel);
// 创建表格模型
String[] columnNames = {"ID", "姓名", "年龄", "性别", "专业"};
tableModel = new DefaultTableModel(columnNames, 0);
table.setModel(tableModel);
// 绑定查询按钮事件
searchButton.addActionListener(e -> {
String condition = textField.getText();
queryStudents(condition);
});
}
private void queryStudents(String condition) {
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "123456";
try (Connection conn = DriverManager.getConnection(url, user, password)) {
// 构造SQL语句
String sql = "SELECT * FROM students";
if (!condition.isEmpty()) {
sql += " WHERE name LIKE '%" + condition + "%'";
}
// 执行查询语句
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
ResultSet rs = stmt.executeQuery();
// 清空表格模型
tableModel.setRowCount(0);
// 将查询结果添加到表格模型中
while (rs.next()) {
Object[] rowData = new Object[5];
rowData[0] = rs.getInt("id");
rowData[1] = rs.getString("name");
rowData[2] = rs.getInt("age");
rowData[3] = rs.getString("gender");
rowData[4] = rs.getString("major");
tableModel.addRow(rowData);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
StudentInfoSystem studentInfoSystem = new StudentInfoSystem();
studentInfoSystem.setVisible(true);
}
}
```
在queryStudents()方法中,根据查询条件构造SQL语句,并使用JDBC执行查询操作。查询结果存储在ResultSet对象中,然后将结果添加到表格模型中,最后显示在JTable中。
阅读全文