first commit
This commit is contained in:
227
src/dao/impl/LeaveRequestDAOImpl.java
Normal file
227
src/dao/impl/LeaveRequestDAOImpl.java
Normal file
@@ -0,0 +1,227 @@
|
||||
package dao.impl;
|
||||
|
||||
import dao.LeaveRequestDAO;
|
||||
import model.ApprovalStatus;
|
||||
import model.LeaveRequest;
|
||||
import model.Student;
|
||||
import model.Teacher;
|
||||
import util.DatabaseUtil;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class LeaveRequestDAOImpl implements LeaveRequestDAO {
|
||||
private final StudentDAOImpl studentDAO = new StudentDAOImpl();
|
||||
private final TeacherDAOImpl teacherDAO = new TeacherDAOImpl();
|
||||
|
||||
@Override
|
||||
public int insert(LeaveRequest request) {
|
||||
String sql = "INSERT INTO leave_requests (student_id, start_time, end_time, status, " +
|
||||
"duration, location, reason_type, reason_detail, is_leaving_city, " +
|
||||
"special_situation, request_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
|
||||
|
||||
stmt.setInt(1, request.getStudent().getId());
|
||||
stmt.setTimestamp(2, new Timestamp(request.getStartTime().getTime()));
|
||||
stmt.setTimestamp(3, new Timestamp(request.getEndTime().getTime()));
|
||||
stmt.setString(4, request.getStatus().name());
|
||||
stmt.setDouble(5, request.getDuration());
|
||||
stmt.setString(6, request.getLocation());
|
||||
stmt.setString(7, request.getReasonType());
|
||||
stmt.setString(8, request.getReasonDetail());
|
||||
stmt.setBoolean(9, request.isLeavingCity());
|
||||
stmt.setString(10, request.getSpecialSituation());
|
||||
stmt.setTimestamp(11, new Timestamp(request.getRequestTime().getTime()));
|
||||
|
||||
int affectedRows = stmt.executeUpdate();
|
||||
if (affectedRows == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
try (ResultSet generatedKeys = stmt.getGeneratedKeys()) {
|
||||
if (generatedKeys.next()) {
|
||||
request.setId(generatedKeys.getInt(1));
|
||||
}
|
||||
}
|
||||
return affectedRows;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteById(int id) {
|
||||
String sql = "DELETE FROM leave_requests WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(LeaveRequest request) {
|
||||
String sql = "UPDATE leave_requests SET student_id = ?, start_time = ?, " +
|
||||
"end_time = ?, status = ?, duration = ?, location = ?, " +
|
||||
"reason_type = ?, reason_detail = ?, is_leaving_city = ?, " +
|
||||
"special_situation = ?, request_time = ? WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, request.getStudent().getId());
|
||||
stmt.setTimestamp(2, new Timestamp(request.getStartTime().getTime()));
|
||||
stmt.setTimestamp(3, new Timestamp(request.getEndTime().getTime()));
|
||||
stmt.setString(4, request.getStatus().name());
|
||||
stmt.setDouble(5, request.getDuration());
|
||||
stmt.setString(6, request.getLocation());
|
||||
stmt.setString(7, request.getReasonType());
|
||||
stmt.setString(8, request.getReasonDetail());
|
||||
stmt.setBoolean(9, request.isLeavingCity());
|
||||
stmt.setString(10, request.getSpecialSituation());
|
||||
stmt.setTimestamp(11, new Timestamp(request.getRequestTime().getTime()));
|
||||
stmt.setInt(12, request.getId());
|
||||
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaveRequest findById(int id) {
|
||||
String sql = "SELECT lr.*, s.* FROM leave_requests lr " +
|
||||
"JOIN students s ON lr.student_id = s.id " +
|
||||
"WHERE lr.id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
return mapResultSetToLeaveRequest(rs);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LeaveRequest> findAll() {
|
||||
List<LeaveRequest> requests = new ArrayList<>();
|
||||
String sql = "SELECT lr.*, s.* FROM leave_requests lr " +
|
||||
"JOIN students s ON lr.student_id = s.id";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql)) {
|
||||
|
||||
while (rs.next()) {
|
||||
requests.add(mapResultSetToLeaveRequest(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return requests;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LeaveRequest> findByStudentId(int studentId) {
|
||||
List<LeaveRequest> requests = new ArrayList<>();
|
||||
String sql = "SELECT lr.*, s.* FROM leave_requests lr " +
|
||||
"JOIN students s ON lr.student_id = s.id " +
|
||||
"WHERE lr.student_id = ? ORDER BY lr.request_time DESC";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, studentId);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
requests.add(mapResultSetToLeaveRequest(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return requests;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LeaveRequest> findByStatus(ApprovalStatus status) {
|
||||
List<LeaveRequest> requests = new ArrayList<>();
|
||||
String sql = "SELECT lr.*, s.* FROM leave_requests lr " +
|
||||
"JOIN students s ON lr.student_id = s.id " +
|
||||
"WHERE lr.status = ? ORDER BY lr.request_time DESC";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, status.name());
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
requests.add(mapResultSetToLeaveRequest(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return requests;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateStatus(int requestId, ApprovalStatus status, String comment) {
|
||||
String sql = "UPDATE leave_requests SET status = ?, approval_comment = ?, approval_time = ? WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, status.name());
|
||||
stmt.setString(2, comment);
|
||||
stmt.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
|
||||
stmt.setInt(4, requestId);
|
||||
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private LeaveRequest mapResultSetToLeaveRequest(ResultSet rs) throws SQLException {
|
||||
LeaveRequest request = new LeaveRequest();
|
||||
request.setId(rs.getInt("id"));
|
||||
request.setLocation(rs.getString("location"));
|
||||
request.setStartTime(rs.getTimestamp("start_time"));
|
||||
request.setEndTime(rs.getTimestamp("end_time"));
|
||||
request.setStatus(ApprovalStatus.valueOf(rs.getString("status")));
|
||||
request.setDuration(rs.getDouble("duration"));
|
||||
request.setReasonType(rs.getString("reason_type"));
|
||||
request.setReasonDetail(rs.getString("reason_detail"));
|
||||
request.setLeavingCity(rs.getBoolean("is_leaving_city"));
|
||||
request.setSpecialSituation(rs.getString("special_situation"));
|
||||
request.setRequestTime(rs.getTimestamp("request_time"));
|
||||
|
||||
// 设置学生信息
|
||||
Student student = new Student();
|
||||
student.setId(rs.getInt("student_id"));
|
||||
student.setStudentId(rs.getString("student_id"));
|
||||
student.setName(rs.getString("name"));
|
||||
student.setClassName(rs.getString("class_name"));
|
||||
student.setContact(rs.getString("contact"));
|
||||
request.setStudent(student);
|
||||
|
||||
Timestamp approvalTime = rs.getTimestamp("approval_time");
|
||||
if (approvalTime != null) {
|
||||
request.setApprovalTime(approvalTime);
|
||||
}
|
||||
|
||||
return request;
|
||||
}
|
||||
}
|
||||
189
src/dao/impl/StudentDAOImpl.java
Normal file
189
src/dao/impl/StudentDAOImpl.java
Normal file
@@ -0,0 +1,189 @@
|
||||
package dao.impl;
|
||||
|
||||
import dao.StudentDAO;
|
||||
import model.Student;
|
||||
import util.DatabaseUtil;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* StudentDAO实现类
|
||||
*/
|
||||
public class StudentDAOImpl implements StudentDAO {
|
||||
|
||||
@Override
|
||||
public int insert(Student student) {
|
||||
String sql = "INSERT INTO students (student_id, name, class_name, contact, college, major, is_graduating) VALUES (?, ?, ?, ?, ?, ?, ?)";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
|
||||
|
||||
stmt.setString(1, student.getStudentId());
|
||||
stmt.setString(2, student.getName());
|
||||
stmt.setString(3, student.getClassName());
|
||||
stmt.setString(4, student.getContact());
|
||||
stmt.setString(5, student.getCollege());
|
||||
stmt.setString(6, student.getMajor());
|
||||
stmt.setBoolean(7, student.isGraduating());
|
||||
|
||||
int affectedRows = stmt.executeUpdate();
|
||||
if (affectedRows == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
try (ResultSet generatedKeys = stmt.getGeneratedKeys()) {
|
||||
if (generatedKeys.next()) {
|
||||
student.setId(generatedKeys.getInt(1));
|
||||
}
|
||||
}
|
||||
return affectedRows;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteById(int id) {
|
||||
String sql = "DELETE FROM students WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(Student student) {
|
||||
String sql = "UPDATE students SET student_id = ?, name = ?, class_name = ?, contact = ?, college = ?, major = ?, is_graduating = ? WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, student.getStudentId());
|
||||
stmt.setString(2, student.getName());
|
||||
stmt.setString(3, student.getClassName());
|
||||
stmt.setString(4, student.getContact());
|
||||
stmt.setString(5, student.getCollege());
|
||||
stmt.setString(6, student.getMajor());
|
||||
stmt.setBoolean(7, student.isGraduating());
|
||||
stmt.setInt(8, student.getId());
|
||||
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Student findById(int id) {
|
||||
String sql = "SELECT * FROM students WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
return mapResultSetToStudent(rs);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Student> findAll() {
|
||||
List<Student> students = new ArrayList<>();
|
||||
String sql = "SELECT * FROM students";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql)) {
|
||||
|
||||
while (rs.next()) {
|
||||
students.add(mapResultSetToStudent(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return students;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Student findByStudentId(String studentId) {
|
||||
String sql = "SELECT * FROM students WHERE student_id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, studentId);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
return mapResultSetToStudent(rs);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Student> findByClassName(String className) {
|
||||
List<Student> students = new ArrayList<>();
|
||||
String sql = "SELECT * FROM students WHERE class_name = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, className);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
students.add(mapResultSetToStudent(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return students;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Student> findByNameLike(String name) {
|
||||
List<Student> students = new ArrayList<>();
|
||||
String sql = "SELECT * FROM students WHERE name LIKE ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, "%" + name + "%");
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
students.add(mapResultSetToStudent(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return students;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将ResultSet映射为Student对象
|
||||
*/
|
||||
private Student mapResultSetToStudent(ResultSet rs) throws SQLException {
|
||||
Student student = new Student();
|
||||
student.setId(rs.getInt("id"));
|
||||
student.setStudentId(rs.getString("student_id"));
|
||||
student.setName(rs.getString("name"));
|
||||
student.setClassName(rs.getString("class_name"));
|
||||
student.setContact(rs.getString("contact"));
|
||||
student.setCollege(rs.getString("college"));
|
||||
student.setMajor(rs.getString("major"));
|
||||
student.setGraduating(rs.getBoolean("is_graduating"));
|
||||
return student;
|
||||
}
|
||||
}
|
||||
180
src/dao/impl/TeacherDAOImpl.java
Normal file
180
src/dao/impl/TeacherDAOImpl.java
Normal file
@@ -0,0 +1,180 @@
|
||||
package dao.impl;
|
||||
|
||||
import dao.TeacherDAO;
|
||||
import model.Teacher;
|
||||
import util.DatabaseUtil;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TeacherDAO实现类
|
||||
*/
|
||||
public class TeacherDAOImpl implements TeacherDAO {
|
||||
|
||||
@Override
|
||||
public int insert(Teacher teacher) {
|
||||
String sql = "INSERT INTO teachers (teacher_id, name, department, contact) VALUES (?, ?, ?, ?)";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
|
||||
|
||||
stmt.setString(1, teacher.getTeacherId());
|
||||
stmt.setString(2, teacher.getName());
|
||||
stmt.setString(3, teacher.getDepartment());
|
||||
stmt.setString(4, teacher.getContact());
|
||||
|
||||
int affectedRows = stmt.executeUpdate();
|
||||
if (affectedRows == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
try (ResultSet generatedKeys = stmt.getGeneratedKeys()) {
|
||||
if (generatedKeys.next()) {
|
||||
teacher.setId(generatedKeys.getInt(1));
|
||||
}
|
||||
}
|
||||
return affectedRows;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteById(int id) {
|
||||
String sql = "DELETE FROM teachers WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(Teacher teacher) {
|
||||
String sql = "UPDATE teachers SET teacher_id = ?, name = ?, department = ?, contact = ? WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, teacher.getTeacherId());
|
||||
stmt.setString(2, teacher.getName());
|
||||
stmt.setString(3, teacher.getDepartment());
|
||||
stmt.setString(4, teacher.getContact());
|
||||
stmt.setInt(5, teacher.getId());
|
||||
|
||||
return stmt.executeUpdate();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Teacher findById(int id) {
|
||||
String sql = "SELECT * FROM teachers WHERE id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setInt(1, id);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
return mapResultSetToTeacher(rs);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Teacher> findAll() {
|
||||
List<Teacher> teachers = new ArrayList<>();
|
||||
String sql = "SELECT * FROM teachers";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql)) {
|
||||
|
||||
while (rs.next()) {
|
||||
teachers.add(mapResultSetToTeacher(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return teachers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Teacher findByTeacherId(String teacherId) {
|
||||
String sql = "SELECT * FROM teachers WHERE teacher_id = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, teacherId);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
if (rs.next()) {
|
||||
return mapResultSetToTeacher(rs);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Teacher> findByDepartment(String department) {
|
||||
List<Teacher> teachers = new ArrayList<>();
|
||||
String sql = "SELECT * FROM teachers WHERE department = ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, department);
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
teachers.add(mapResultSetToTeacher(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return teachers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Teacher> findByNameLike(String name) {
|
||||
List<Teacher> teachers = new ArrayList<>();
|
||||
String sql = "SELECT * FROM teachers WHERE name LIKE ?";
|
||||
try (Connection conn = DatabaseUtil.getConnection();
|
||||
PreparedStatement stmt = conn.prepareStatement(sql)) {
|
||||
|
||||
stmt.setString(1, "%" + name + "%");
|
||||
ResultSet rs = stmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
teachers.add(mapResultSetToTeacher(rs));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return teachers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将ResultSet映射为Teacher对象
|
||||
*/
|
||||
private Teacher mapResultSetToTeacher(ResultSet rs) throws SQLException {
|
||||
Teacher teacher = new Teacher();
|
||||
teacher.setId(rs.getInt("id"));
|
||||
teacher.setTeacherId(rs.getString("teacher_id"));
|
||||
teacher.setName(rs.getString("name"));
|
||||
teacher.setDepartment(rs.getString("department"));
|
||||
teacher.setContact(rs.getString("contact"));
|
||||
return teacher;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user