eclipse如何结合数据库完成学生管理系统的代码
时间: 2024-03-13 13:47:23 浏览: 18
以下是一个基于 Java 和 MySQL 数据库的简单学生信息管理系统的示例代码:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class StudentDAO {
private String jdbcURL;
private String jdbcUsername;
private String jdbcPassword;
private Connection jdbcConnection;
public StudentDAO(String jdbcURL, String jdbcUsername, String jdbcPassword) {
this.jdbcURL = jdbcURL;
this.jdbcUsername = jdbcUsername;
this.jdbcPassword = jdbcPassword;
}
protected void connect() throws SQLException {
if (jdbcConnection == null || jdbcConnection.isClosed()) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new SQLException(e);
}
jdbcConnection = DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword);
}
}
protected void disconnect() throws SQLException {
if (jdbcConnection != null && !jdbcConnection.isClosed()) {
jdbcConnection.close();
}
}
public boolean insertStudent(Student student) throws SQLException {
String sql = "INSERT INTO students (name, email, country) VALUES (?, ?, ?)";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setString(1, student.getName());
statement.setString(2, student.getEmail());
statement.setString(3, student.getCountry());
boolean rowInserted = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowInserted;
}
public List<Student> listAllStudents() throws SQLException {
List<Student> listStudents = new ArrayList<>();
String sql = "SELECT * FROM students";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
String country = resultSet.getString("country");
Student student = new Student(id, name, email, country);
listStudents.add(student);
}
resultSet.close();
statement.close();
disconnect();
return listStudents;
}
public boolean deleteStudent(Student student) throws SQLException {
String sql = "DELETE FROM students where id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setInt(1, student.getId());
boolean rowDeleted = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowDeleted;
}
public boolean updateStudent(Student student) throws SQLException {
String sql = "UPDATE students SET name = ?, email = ?, country = ?";
sql += " WHERE id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setString(1, student.getName());
statement.setString(2, student.getEmail());
statement.setString(3, student.getCountry());
statement.setInt(4, student.getId());
boolean rowUpdated = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowUpdated;
}
public Student getStudent(int id) throws SQLException {
Student student = null;
String sql = "SELECT * FROM students WHERE id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
String name = resultSet.getString("name");
String email = resultSet.getString("email");
String country = resultSet.getString("country");
student = new Student(id, name, email, country);
}
resultSet.close();
statement.close();
disconnect();
return student;
}
}
```
这个示例代码包括了学生信息的增删改查等基本操作,使用了 JDBC API 连接 MySQL 数据库。在使用这个代码之前,需要先创建一个名为 `students` 的表,包含 `id`、`name`、`email` 和 `country` 四个字段。可以根据需要对这个示例代码进行修改和扩展。