利用JavaGUI喝JDBC编程实现学生成绩查询功能(输入学生学号,即可查询到该学生的所有成绩)
时间: 2023-12-15 20:04:42 浏览: 100
好的,我可以为你提供一个简单的JavaGUI和JDBC编程的学生成绩查询示例程序。
首先,你需要创建一个JavaGUI窗口,包含一个文本框和一个按钮。文本框用于输入学生学号,按钮用于触发查询操作。接下来,你需要编写JDBC代码连接数据库,并通过输入的学号查询学生的成绩信息。
以下是示例代码:
```java
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ScoreQuery {
private JFrame frame;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ScoreQuery window = new ScoreQuery();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public ScoreQuery() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 434, 261);
frame.getContentPane().add(panel);
panel.setLayout(null);
JLabel lblNewLabel = new JLabel("请输入学号:");
lblNewLabel.setBounds(42, 75, 85, 16);
panel.add(lblNewLabel);
textField = new JTextField();
textField.setBounds(139, 70, 130, 26);
panel.add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("查询");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String stuId = textField.getText();
if (stuId.isEmpty()) {
JOptionPane.showMessageDialog(frame, "请输入学号!");
return;
}
String sql = "SELECT * FROM score WHERE stu_id=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, stuId);
rs = pstmt.executeQuery();
while (rs.next()) {
String courseId = rs.getString("course_id");
String score = rs.getString("score");
JOptionPane.showMessageDialog(frame, "课程编号:" + courseId + ",成绩:" + score);
}
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
});
btnNewButton.setBounds(139, 126, 117, 29);
panel.add(btnNewButton);
}
}
```
在这个示例程序中,我们使用了Swing库来创建GUI界面,并使用JDBC连接数据库。当用户点击查询按钮时,程序将获取输入的学号,并通过JDBC执行查询操作,将查询结果显示在对话框中。
需要注意的是,这个示例程序中使用的是MySQL数据库,如果你使用的是其他数据库,需要修改相应的JDBC驱动和连接信息。
希望这个示例程序能够帮助你完成学生成绩查询功能的开发。
阅读全文