利用JavaGUI和JDBC编程实现学生成绩查询功能。(输入学生学号, 即可查询到该学 生的所有成绩)
时间: 2024-03-10 17:50:17 浏览: 20
好的,我可以为您解答这个问题。首先,您需要设置一个Java GUI界面,用于输入学生学号。然后,您需要使用JDBC连接到数据库,查询该学生的成绩信息,并将其显示在GUI界面上。
以下是一个简单的实现步骤:
1. 创建一个Java GUI界面,包含一个文本框用于输入学号和一个按钮用于触发查询操作。
2. 添加按钮的ActionListener,当用户点击按钮时,执行查询操作。
3. 在查询操作中,使用JDBC连接到数据库,查询学号对应的学生信息和成绩信息。
4. 将查询结果显示在GUI界面上,可以使用一个文本域或表格来显示。
下面是一个简单的代码示例:
```java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class ScoreQuery extends JFrame implements ActionListener {
private JLabel label;
private JTextField textField;
private JTextArea textArea;
private JButton button;
private Connection conn;
public ScoreQuery() {
// 创建GUI界面
label = new JLabel("请输入学生学号:");
textField = new JTextField(10);
textArea = new JTextArea(10, 30);
button = new JButton("查询");
button.addActionListener(this);
JPanel panel1 = new JPanel();
panel1.add(label);
panel1.add(textField);
panel1.add(button);
JPanel panel2 = new JPanel();
panel2.add(new JScrollPane(textArea));
setLayout(new BorderLayout());
add(panel1, BorderLayout.NORTH);
add(panel2, BorderLayout.CENTER);
// 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载数据库驱动
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 建立数据库连接
} catch (Exception e) {
e.printStackTrace();
}
setTitle("学生成绩查询");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
String sno = textField.getText().trim();
if (sno.equals("")) {
JOptionPane.showMessageDialog(this, "请输入学号");
return;
}
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from score where sno='" + sno + "'");
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 (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new ScoreQuery();
}
}
```
上面的代码连接到了一个名为test的MySQL数据库,其中包含一个名为score的表,该表包含sno、name、chinese、math、english五个字段,分别表示学号、姓名、语文成绩、数学成绩、英语成绩。
当用户在界面中输入学号并点击查询按钮时,程序会执行查询操作,并将查询结果显示在文本域中。
请注意,上面的代码仅是一个简单的示例,实际应用中需要考虑更多的异常处理、SQL注入等安全问题。