Files
AbsenceManager/src/service/StudentService.java
2024-12-06 09:53:30 +08:00

99 lines
2.4 KiB
Java

package service;
import dao.DAOFactory;
import dao.StudentDAO;
import model.Student;
import java.util.List;
/**
* 学生信息服务类
*/
public class StudentService {
private final StudentDAO studentDAO = DAOFactory.getStudentDAO();
/**
* 添加学生
* @param student 学生信息
* @return 是否添加成功
*/
public boolean addStudent(Student student) {
// 检查学号是否已存在
if (studentDAO.findByStudentId(student.getStudentId()) != null) {
return false;
}
return studentDAO.insert(student) > 0;
}
/**
* 更新学生信息
* @param student 学生信息
* @return 是否更新成功
*/
public boolean updateStudent(Student student) {
// 检查是否存在
Student existingStudent = studentDAO.findById(student.getId());
if (existingStudent == null) {
return false;
}
// 检查学号是否被其他学生使用
Student studentWithSameId = studentDAO.findByStudentId(student.getStudentId());
if (studentWithSameId != null && studentWithSameId.getId() != student.getId()) {
return false;
}
return studentDAO.update(student) > 0;
}
/**
* 删除学生
* @param id 学生ID
* @return 是否删除成功
*/
public boolean deleteStudent(int id) {
return studentDAO.deleteById(id) > 0;
}
/**
* 根据ID查询学生
* @param id 学生ID
* @return 学生信息
*/
public Student getStudentById(int id) {
return studentDAO.findById(id);
}
/**
* 根据学号查询学生
* @param studentId 学号
* @return 学生信息
*/
public Student getStudentByStudentId(String studentId) {
return studentDAO.findByStudentId(studentId);
}
/**
* 查询所有学生
* @return 学生列表
*/
public List<Student> getAllStudents() {
return studentDAO.findAll();
}
/**
* 根据班级查询学生
* @param className 班级名称
* @return 学生列表
*/
public List<Student> getStudentsByClass(String className) {
return studentDAO.findByClassName(className);
}
/**
* 根据姓名模糊查询学生
* @param name 学生姓名
* @return 学生列表
*/
public List<Student> searchStudentsByName(String name) {
return studentDAO.findByNameLike(name);
}
}