小明:嘿,小华,我最近在做一个离校系统的项目,主要使用Java来开发。你对这方面有什么建议吗?
小华:当然了!首先,我们需要确定这个系统的功能需求。比如,学生信息管理、离校申请提交、审批流程等。你打算怎么开始呢?
小明:我想从设计数据库开始。这样可以更好地组织数据结构。
小华:好的,我们可以使用MySQL作为后端数据库。首先,我们需要创建一个用户表(students),包含学生的ID、姓名、联系方式等基本信息。
小明:那我们来看一下创建用户表的SQL语句吧。
小华:好的,这是创建用户表的SQL语句:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
contact VARCHAR(100),
status ENUM('在校', '离校') DEFAULT '在校'
);
小明:太棒了!接下来我们需要编写Java代码来操作这个数据库。
小华:没错。我们可以使用JDBC来连接数据库。这里是一个简单的Java代码片段,用于添加新学生的信息:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class StudentManager {
private static final String DB_URL = "jdbc:mysql://localhost:3306/school";
private static final String USER = "root";
private static final String PASS = "password";
public void addStudent(String name, String contact) throws Exception {
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
String sql = "INSERT INTO students (name, contact) VALUES (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, contact);
statement.executeUpdate();
}
}
}
小明:这看起来非常有用!那如果我们想要查询所有学生的状态呢?
小华:这也很简单。我们可以编写一个方法来获取所有学生的状态信息:
public List getAllStudents() throws Exception {
List students = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
String sql = "SELECT * FROM students";
PreparedStatement statement = conn.prepareStatement(sql);
ResultSet rs = statement.executeQuery();
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setContact(rs.getString("contact"));
student.setStatus(rs.getString("status"));
students.add(student);
}
}
return students;
}