Java数据库学生信息管理系统:修改和删除学生信息功能代码
Java数据库学生信息管理系统:修改和删除学生信息功能代码
本文提供了使用Java开发的数据库学生信息管理系统中修改和删除学生信息的代码实现,包括数据库操作、界面设计和事件处理。代码使用PreparedStatement进行数据库操作,并通过Swing组件实现界面交互。
1. 更改学生信息功能和界面代码
//更新学生信息的方法,需要传入学生ID和新的学生信息
public void updateStudentInfo(int studentId, StudentInfo newInfo) {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection(); //获取数据库连接
ps = conn.prepareStatement('UPDATE students SET name=?, age=?, gender=?, grade=? WHERE id=?');
//使用PreparedStatement对象进行更新操作,注意参数顺序
ps.setString(1, newInfo.getName());
ps.setInt(2, newInfo.getAge());
ps.setString(3, newInfo.getGender());
ps.setString(4, newInfo.getGrade());
ps.setInt(5, studentId);
ps.executeUpdate(); //执行更新操作
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(conn, ps, null); //关闭连接和PreparedStatement对象
}
}
//更新学生信息的界面代码,需要使用JFrame和JPanel等Swing组件
public class UpdateStudentInfoFrame extends JFrame {
private JLabel nameLabel;
private JTextField nameField;
private JLabel ageLabel;
private JTextField ageField;
private JLabel genderLabel;
private JComboBox<String> genderComboBox;
private JLabel gradeLabel;
private JTextField gradeField;
private JButton updateButton;
private JButton cancelButton;
public UpdateStudentInfoFrame(int studentId, StudentInfo oldInfo) {
//初始化界面
nameLabel = new JLabel('姓名:');
nameField = new JTextField(oldInfo.getName());
ageLabel = new JLabel('年龄:');
ageField = new JTextField(String.valueOf(oldInfo.getAge()));
genderLabel = new JLabel('性别:');
genderComboBox = new JComboBox<>(new String[]{'男', '女'});
genderComboBox.setSelectedItem(oldInfo.getGender());
gradeLabel = new JLabel('年级:');
gradeField = new JTextField(oldInfo.getGrade());
updateButton = new JButton('更新');
cancelButton = new JButton('取消');
//添加事件监听器
updateButton.addActionListener(e -> {
StudentInfo newInfo = new StudentInfo(nameField.getText(), Integer.parseInt(ageField.getText()), genderComboBox.getSelectedItem().toString(), gradeField.getText());
updateStudentInfo(studentId, newInfo); //调用更新方法
JOptionPane.showMessageDialog(this, '更新成功!');
dispose(); //关闭窗口
});
cancelButton.addActionListener(e -> {
dispose(); //关闭窗口
});
//布局界面
JPanel panel = new JPanel(new GridLayout(5, 2));
panel.add(nameLabel);
panel.add(nameField);
panel.add(ageLabel);
panel.add(ageField);
panel.add(genderLabel);
panel.add(genderComboBox);
panel.add(gradeLabel);
panel.add(gradeField);
panel.add(updateButton);
panel.add(cancelButton);
add(panel);
//设置窗口属性
setTitle('更新学生信息');
setSize(300, 200);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
}
### 2. 删除学生信息的功能和界面代码
```java
//删除学生信息的方法,需要传入学生ID
public void deleteStudentInfo(int studentId) {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection(); //获取数据库连接
ps = conn.prepareStatement('DELETE FROM students WHERE id=?');
//使用PreparedStatement对象进行删除操作,注意参数顺序
ps.setInt(1, studentId);
ps.executeUpdate(); //执行删除操作
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(conn, ps, null); //关闭连接和PreparedStatement对象
}
}
//删除学生信息的界面代码,需要使用JFrame和JOptionPane等Swing组件
public class DeleteStudentInfoFrame extends JFrame {
public DeleteStudentInfoFrame(int studentId) {
int option = JOptionPane.showConfirmDialog(this, '确认删除该学生的信息吗?', '删除学生信息', JOptionPane.YES_NO_OPTION);
//使用JOptionPane显示确认对话框,让用户确认是否删除学生信息
if (option == JOptionPane.YES_OPTION) {
deleteStudentInfo(studentId); //调用删除方法
JOptionPane.showMessageDialog(this, '删除成功!');
}
dispose(); //关闭窗口
}
}
注意:
- 以上代码中,
getConnection()方法用于获取数据库连接,close()方法用于关闭连接和PreparedStatement对象,具体实现需要根据您的数据库配置进行调整。 StudentInfo类用于表示学生信息,需要根据您的数据表结构进行定义。- 代码示例中使用了 Swing 组件,您可以根据您的需求进行调整。
- 代码中缺少具体的数据表结构和界面设计,仅供参考。
原文地址: https://www.cveoy.top/t/topic/oTjz 著作权归作者所有。请勿转载和采集!