利用JavaGUI和JDBC编程实现学生成绩查询功能。(输入学生学号,即可查询到该学生的所有成绩)
时间: 2024-02-25 13:54:14 浏览: 82
好的,这是一个比较典型的JavaGUI和JDBC的应用,以下是实现的步骤:
1.首先需要创建一个学生成绩的数据库表,包括学生学号、姓名、科目和成绩等字段。
2.在Java中引入JDBC库,连接数据库,并且通过SQL语句查询指定学生的成绩信息。
3.在JavaGUI中设置一个文本框用于输入学号,一个按钮用于查询,以及一个文本区域用于显示查询结果。
4.将查询结果显示到文本区域中。
下面是一个简单的实现示例:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class ScoreQuery extends JFrame implements ActionListener {
private JTextField jtfStuNo = new JTextField(10);
private JTextArea jtaResult = new JTextArea(10, 20);
private JButton jbtQuery = new JButton("查询");
public ScoreQuery() {
JPanel p1 = new JPanel(new GridLayout(2, 2));
p1.add(new JLabel("学号"));
p1.add(jtfStuNo);
p1.add(jbtQuery);
jbtQuery.addActionListener(this);
JScrollPane scrollPane = new JScrollPane(jtaResult);
JPanel p2 = new JPanel();
p2.add(scrollPane);
add(p1, BorderLayout.NORTH);
add(p2, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtQuery) {
String stuNo = jtfStuNo.getText().trim();
if (stuNo.length() == 0) {
JOptionPane.showMessageDialog(null, "请输入学号");
return;
}
String sql = "SELECT * FROM score WHERE stuNo = ?";
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/score?useSSL=false", "root", "123456");
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, stuNo);
ResultSet rs = pstmt.executeQuery();
jtaResult.setText("");
while (rs.next()) {
jtaResult.append("学号:" + rs.getString("stuNo") + "\n");
jtaResult.append("姓名:" + rs.getString("name") + "\n");
jtaResult.append("科目:" + rs.getString("subject") + "\n");
jtaResult.append("成绩:" + rs.getString("score") + "\n");
jtaResult.append("\n");
}
if (jtaResult.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "未找到该学生的成绩信息");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
ScoreQuery frame = new ScoreQuery();
frame.setTitle("学生成绩查询");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
```
需要注意的是,这里的数据库连接信息和SQL语句需要根据实际情况进行修改。
阅读全文