将Java中创建好的学生管理系统进行修改,将学生信息保存到mysql数据库中。程序每次启动时,从数据库中读出以前添加的学生信息。
时间: 2024-01-21 20:17:46 浏览: 131
好的,我们可以通过以下步骤来实现:
1. 创建一个名为"student"的数据库,并在其中创建一个名为"student_info"的表,表中包含以下字段:
- id: 学生编号,主键,自增长
- name: 学生姓名
- gender: 学生性别
- age: 学生年龄
- score: 学生分数
2. 在Java程序中连接到mysql数据库,可以使用JDBC实现。需要在程序中导入mysql连接器的jar包。
3. 在程序启动时,从数据库中读取学生信息并显示。可以使用SELECT语句查询数据库中的数据,并将查询结果存储到Java对象中。
4. 在程序中添加学生信息时,将数据保存到数据库中。可以使用INSERT语句向数据库中插入数据。
5. 在程序中修改学生信息时,更新数据库中的数据。可以使用UPDATE语句更新数据库中的数据。
下面是一个简单的示例代码:
```java
import java.sql.*;
public class StudentManagementSystem {
private static final String DB_URL = "jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 连接到数据库
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
// 查询数据并显示
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, name, gender, age, score FROM student_info");
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" +
rs.getString("name") + "\t" +
rs.getString("gender") + "\t" +
rs.getInt("age") + "\t" +
rs.getDouble("score"));
}
// 添加数据
String insertSql = "INSERT INTO student_info (name, gender, age, score) VALUES (?, ?, ?, ?)";
PreparedStatement insertStmt = conn.prepareStatement(insertSql);
insertStmt.setString(1, "张三");
insertStmt.setString(2, "男");
insertStmt.setInt(3, 18);
insertStmt.setDouble(4, 90.5);
insertStmt.executeUpdate();
// 修改数据
String updateSql = "UPDATE student_info SET score = ? WHERE name = ?";
PreparedStatement updateStmt = conn.prepareStatement(updateSql);
updateStmt.setDouble(1, 95.0);
updateStmt.setString(2, "张三");
updateStmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们使用了PreparedStatement来向数据库中插入数据和更新数据,这是为了避免SQL注入攻击。另外,我们也关闭了数据库连接和其他资源,以避免资源泄漏。
阅读全文