7. 利用 JavaGUI 和 JDBC 编程实现学生成绩查询功能。 (输入学生学号, 即可查询到该学 生的所有成绩) ·4·
时间: 2024-02-25 07:54:15 浏览: 65
好的,这是一个关于JavaGUI和JDBC的学生成绩查询功能的问题。为了回答这个问题,我们需要以下几个步骤:
1. 创建一个JavaGUI界面,包括一个文本框用于输入学生学号和一个按钮用于查询成绩。
2. 创建一个JDBC连接,连接到数据库。这里需要使用JDBC驱动程序。我们可以使用MySQL数据库作为例子。
3. 在按钮的动作监听器中,获取文本框中输入的学生学号,然后执行SQL查询语句,从数据库中获取该学生的所有成绩。
4. 将查询结果显示在另一个文本框中,或者使用一个表格来展示学生成绩。
下面是一个简单的代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class StudentScoreQuery extends JFrame implements ActionListener {
private JLabel label;
private JTextField textField;
private JTextArea textArea;
private JButton button;
private Connection conn;
private PreparedStatement stmt;
public static void main(String[] args) {
StudentScoreQuery frame = new StudentScoreQuery();
frame.setVisible(true);
}
public StudentScoreQuery() {
initGUI();
initDB();
}
private void initGUI() {
setTitle("学生成绩查询");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
label = new JLabel("学号:");
textField = new JTextField(10);
textArea = new JTextArea();
button = new JButton("查询");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea), BorderLayout.CENTER);
}
private void initDB() {
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
stmt = conn.prepareStatement("SELECT * FROM score WHERE id=?");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
String id = textField.getText().trim();
if (id.isEmpty()) {
JOptionPane.showMessageDialog(this, "学号不能为空!");
return;
}
try {
stmt.setString(1, id);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
String name = rs.getString("name");
int chinese = rs.getInt("chinese");
int math = rs.getInt("math");
int english = rs.getInt("english");
textArea.setText("姓名:" + name + "\n");
textArea.append("语文:" + chinese + "\n");
textArea.append("数学:" + math + "\n");
textArea.append("英语:" + english + "\n");
} else {
JOptionPane.showMessageDialog(this, "该学生不存在!");
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
```
这个示例程序使用了JDBC连接到MySQL数据库,并且在按钮的动作监听器中执行了SQL查询语句。当用户点击查询按钮时,程序会从数据库中获取指定学号的学生成绩,并且在文本框中展示查询结果。
注意:这只是一个简单的示例程序,实际情况中你需要根据自己的需求进行修改和完善。同时,为了保证程序的安全性,你需要对用户的输入进行验证和过滤,确保不会受到SQL注入等攻击。
阅读全文