利用JavaGUI和JDBC编程实现学生成绩查询功能。(输入学生学号, 即可查询到该学 生的所有成绩)
时间: 2024-02-25 16:54:45 浏览: 82
好的,以下是JavaGUI和JDBC编程实现学生成绩查询功能的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class StudentScoreQuery extends JFrame implements ActionListener {
private JLabel label;
private JTextField textField;
private JTextArea textArea;
private JButton button;
public StudentScoreQuery() {
setLayout(new FlowLayout());
label = new JLabel("请输入学生学号:");
add(label);
textField = new JTextField(10);
add(textField);
textArea = new JTextArea(10, 30);
add(textArea);
button = new JButton("查询");
add(button);
button.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
String studentId = textField.getText();
String sql = "SELECT course_name, score FROM score WHERE student_id=?";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, studentId);
ResultSet resultSet = preparedStatement.executeQuery();
textArea.setText("");
while (resultSet.next()) {
String courseName = resultSet.getString("course_name");
int score = resultSet.getInt("score");
textArea.append(courseName + "\t" + score + "\n");
}
resultSet.close();
preparedStatement.close();
connection.close();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new StudentScoreQuery();
}
}
```
这个程序使用了Java的Swing GUI库,包含一个标签、一个文本框、一个文本区域和一个按钮。用户输入学生学号后点击查询按钮,程序就会连接到MySQL数据库中,执行查询语句,将查询结果显示在文本区域中。
其中,JDBC(Java Database Connectivity)是Java访问数据库的标准接口,它定义了一组访问数据库的类和接口。在这个程序中,我们使用了com.mysql.jdbc.Driver类来连接MySQL数据库,使用PreparedStatement类来执行查询语句,使用ResultSet类来处理查询结果。
阅读全文