利用JavaGUI和JDBC编程实现学生成绩查询功能(输入学生学号,即可查询到该学生的所有成绩)
时间: 2024-02-25 21:54:55 浏览: 85
好的,我可以给你提供一个简单的实现思路:
1. 创建一个Java GUI界面,包含一个文本框用于输入学生学号,一个查询按钮用于触发查询操作,以及一个文本区域用于显示查询结果。
2. 在查询按钮的监听器中,获取用户输入的学号,然后使用JDBC连接数据库,查询该学生的成绩信息。
3. 将查询结果显示在文本区域中,可以使用JTable等组件方便地展示查询结果。
下面是一个简单的示例代码,仅供参考:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class ScoreQuery extends JFrame implements ActionListener {
private JLabel label;
private JTextField textField;
private JButton button;
private JTextArea textArea;
public ScoreQuery() {
initUI();
}
private void initUI() {
setTitle("学生成绩查询");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("学号:");
textField = new JTextField(10);
button = new JButton("查询");
button.addActionListener(this);
textArea = new JTextArea();
JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea), BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
String studentId = textField.getText().trim();
if (studentId.length() == 0) {
JOptionPane.showMessageDialog(this, "请输入学号");
return;
}
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM score WHERE student_id='" + studentId + "'");
StringBuilder sb = new StringBuilder();
sb.append("学号\t姓名\t科目\t成绩\n");
while (rs.next()) {
sb.append(rs.getString("student_id")).append("\t")
.append(rs.getString("name")).append("\t")
.append(rs.getString("course")).append("\t")
.append(rs.getInt("score")).append("\n");
}
textArea.setText(sb.toString());
rs.close();
stmt.close();
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "查询失败:" + ex.getMessage());
}
}
}
public static void main(String[] args) {
ScoreQuery query = new ScoreQuery();
query.setVisible(true);
}
}
```
其中,需要根据自己的数据库配置修改连接字符串、用户名和密码。这个示例中使用了MySQL数据库,表结构如下:
```
CREATE TABLE score (
student_id VARCHAR(10) NOT NULL,
name VARCHAR(20) NOT NULL,
course VARCHAR(20) NOT NULL,
score INT NOT NULL,
PRIMARY KEY (student_id, course)
);
```
希望这个示例能够帮助你实现学生成绩查询功能。
阅读全文