MySQL和Javafx写学生信息管理系统,代码如何书写
时间: 2024-03-02 21:52:25 浏览: 95
下面是一个简单的MySQL和JavaFX写的学生信息管理系统的代码示例,包含了查询、添加、修改和删除学生信息的功能。
1. 数据库连接
使用JDBC连接MySQL数据库,需要下载MySQL JDBC驱动程序,并将其添加到项目中。
```
String url = "jdbc:mysql://localhost:3306/student_info";
String user = "root";
String password = "root";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
```
2. 查询学生列表
查询学生列表,使用PreparedStatement对象执行SQL查询语句,并将结果集转换为JavaFX的ObservableList列表。
```
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM student");
ResultSet rs = stmt.executeQuery();
ObservableList<Student> students = FXCollections.observableArrayList();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setAge(rs.getInt("age"));
student.setStudentNumber(rs.getString("student_number"));
students.add(student);
}
```
3. 添加学生
添加学生,使用PreparedStatement对象执行SQL插入语句,并将新学生的信息添加到ObservableList列表中。
```
String sql = "INSERT INTO student (name, gender, age, student_number) VALUES (?, ?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, gender);
stmt.setInt(3, age);
stmt.setString(4, studentNumber);
stmt.executeUpdate();
Student student = new Student();
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setStudentNumber(studentNumber);
students.add(student);
```
4. 修改学生信息
修改学生信息,首先需要从ObservableList列表中获取当前选中的学生信息,然后打开添加/修改界面,并在界面上显示当前选中的学生信息。当用户点击保存按钮时,使用PreparedStatement对象执行SQL更新语句,并更新ObservableList列表中的学生信息。
```
Student selectedStudent = tableView.getSelectionModel().getSelectedItem();
if (selectedStudent == null) {
Alert alert = new Alert(Alert.AlertType.WARNING, "请先选择一条记录!");
alert.showAndWait();
return;
}
// 打开添加/修改界面,并显示当前选中的学生信息
// ...
// 当用户点击保存按钮时,执行以下代码
selectedStudent.setName(name);
selectedStudent.setGender(gender);
selectedStudent.setAge(age);
selectedStudent.setStudentNumber(studentNumber);
String sql = "UPDATE student SET name=?, gender=?, age=?, student_number=? WHERE id=?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, gender);
stmt.setInt(3, age);
stmt.setString(4, studentNumber);
stmt.setInt(5, selectedStudent.getId());
stmt.executeUpdate();
```
5. 删除学生
删除学生,首先需要从ObservableList列表中获取当前选中的学生信息,然后使用PreparedStatement对象执行SQL删除语句,并从ObservableList列表中删除该学生信息。
```
Student selectedStudent = tableView.getSelectionModel().getSelectedItem();
if (selectedStudent == null) {
Alert alert = new Alert(Alert.AlertType.WARNING, "请先选择一条记录!");
alert.showAndWait();
return;
}
String sql = "DELETE FROM student WHERE id=?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInt(1, selectedStudent.getId());
stmt.executeUpdate();
students.remove(selectedStudent);
```
以上是一个简单的MySQL和JavaFX写的学生信息管理系统的代码示例,可以根据实际需求进行修改和扩展。
阅读全文