99 lines
2.4 KiB
Java
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);
|
|
}
|
|
}
|