You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
6.3 KiB
197 lines
6.3 KiB
package service.impl;
|
|
|
|
import dao.StudentDao; // 导入 StudentDao 接口,操作学生数据。
|
|
import dao.impl.StudentDaoImpl; // 导入 StudentDaoImpl 类,实际的学生数据访问实现。
|
|
import domain.Course; // 导入 Course 类,表示课程信息。
|
|
import domain.PageBean; // 导入 PageBean 类,表示分页对象。
|
|
import domain.SelectCourse; // 导入 SelectCourse 类,表示选课信息。
|
|
import domain.Student; // 导入 Student 类,表示学生信息。
|
|
import service.StudentService; // 导入 StudentService 接口,定义学生服务层的业务逻辑。
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* StudentServiceImpl 类实现了 StudentService 接口,负责学生相关业务逻辑的处理。
|
|
* 该类通过调用 StudentDao 实现与数据库的交互,提供了学生登录、注册、信息更新、分页查询等功能。
|
|
*/
|
|
public class StudentServiceImpl implements StudentService {
|
|
|
|
private StudentDao dao = new StudentDaoImpl(); // 实例化 StudentDaoImpl 对象,用于操作学生数据。
|
|
|
|
/**
|
|
* 分页查询学生信息。
|
|
*
|
|
* @param _currentPage 当前页码。
|
|
* @param _rows 每页显示的记录数。
|
|
* @param condition 查询条件,包含多个条件的 Map。
|
|
* @return 返回封装了学生信息的 PageBean 对象。
|
|
*/
|
|
@Override
|
|
public PageBean<Student> findStudentByPage(String _currentPage, String _rows, Map<String, String[]> condition) {
|
|
// 转换当前页和每页记录数
|
|
int currentPage = Integer.parseInt(_currentPage);
|
|
int rows = Integer.parseInt(_rows);
|
|
|
|
// 创建新的 PageBean 对象
|
|
PageBean<Student> pb = new PageBean<Student>();
|
|
|
|
// 设置分页参数
|
|
pb.setCurrentPage(currentPage);
|
|
pb.setRows(rows);
|
|
|
|
// 查询总记录数并设置到 PageBean
|
|
int totalCount = dao.findTotalCount(condition);
|
|
pb.setTotalCount(totalCount);
|
|
|
|
// 计算开始记录的索引
|
|
int start = (currentPage - 1) * rows;
|
|
List<Student> list = dao.findByPage(start, rows, condition); // 查询分页数据
|
|
pb.setList(list);
|
|
|
|
// 计算总页码
|
|
int totalPage = (totalCount % rows) == 0 ? totalCount / rows : (totalCount / rows) + 1;
|
|
pb.setTotalPage(totalPage);
|
|
return pb;
|
|
}
|
|
|
|
/**
|
|
* 查询所有学生信息。
|
|
*
|
|
* @return 返回所有学生的列表。
|
|
*/
|
|
@Override
|
|
public List<Student> findAll() {
|
|
return dao.findAll(); // 调用 DAO 层的 findAll 方法获取所有学生信息
|
|
}
|
|
|
|
/**
|
|
* 学生登录验证。
|
|
*
|
|
* @param student 学生对象,包含学生 ID 和密码。
|
|
* @return 如果验证通过,返回学生信息;否则返回 null。
|
|
*/
|
|
@Override
|
|
public Student login(Student student) {
|
|
return dao.findStudentidAndPassword(student.getS_id(), student.getS_password()); // 调用 DAO 层方法进行登录验证
|
|
}
|
|
|
|
/**
|
|
* 根据学生 ID 查询学生信息。
|
|
*
|
|
* @param student 学生对象,包含学生 ID。
|
|
* @return 返回指定学生的详细信息。
|
|
*/
|
|
@Override
|
|
public Student findStudentById(Student student) {
|
|
return dao.findStudentById(student.getS_id()); // 调用 DAO 层方法根据学生 ID 查询学生信息
|
|
}
|
|
|
|
/**
|
|
* 学生注册。
|
|
*
|
|
* @param student 学生对象,包含学生注册所需的所有信息。
|
|
*/
|
|
@Override
|
|
public void register(Student student) {
|
|
dao.addStudent(student); // 调用 DAO 层方法注册学生
|
|
}
|
|
|
|
/**
|
|
* 更新学生信息。
|
|
*
|
|
* @param student 学生对象,包含更新后的信息。
|
|
*/
|
|
@Override
|
|
public void updateInfo(Student student) {
|
|
dao.updateInfo(student); // 调用 DAO 层方法更新学生信息
|
|
}
|
|
|
|
/**
|
|
* 更新学生密码。
|
|
*
|
|
* @param studentid 学生 ID。
|
|
* @param newpassword 新密码。
|
|
*/
|
|
@Override
|
|
public void updatePassword(String studentid, String newpassword) {
|
|
dao.updatePassword(studentid, newpassword); // 调用 DAO 层方法更新学生密码
|
|
}
|
|
|
|
/**
|
|
* 根据学生 ID 查询该学生选修的所有课程。
|
|
*
|
|
* @param studentid 学生 ID。
|
|
* @return 返回该学生选修的所有课程信息。
|
|
*/
|
|
@Override
|
|
public List<SelectCourse> findAllSelectCourse(String studentid) {
|
|
return dao.findAllSelectCourse(studentid); // 调用 DAO 层方法获取该学生的选课信息
|
|
}
|
|
|
|
/**
|
|
* 查询所有可选课程。
|
|
*
|
|
* @return 返回所有可选课程的列表。
|
|
*/
|
|
@Override
|
|
public List<Course> findAllOptionalCourse() {
|
|
return dao.findAllOptionalCourse(); // 调用 DAO 层方法获取所有可选课程信息
|
|
}
|
|
|
|
/**
|
|
* 学生选课。
|
|
*
|
|
* @param studentid 学生 ID。
|
|
* @param courseid 课程 ID。
|
|
*/
|
|
@Override
|
|
public void addSelectCourse(String studentid, String courseid) {
|
|
dao.addSelectCourse(studentid, courseid); // 调用 DAO 层方法进行选课
|
|
}
|
|
|
|
/**
|
|
* 删除学生信息。
|
|
*
|
|
* @param studentid 学生 ID。
|
|
*/
|
|
@Override
|
|
public void deleteStudentById(String studentid) {
|
|
dao.deleteStudentById(studentid); // 调用 DAO 层方法删除指定学生
|
|
}
|
|
|
|
/**
|
|
* 批量删除学生信息。
|
|
*
|
|
* @param sids 学生 ID 数组,包含多个学生 ID。
|
|
*/
|
|
@Override
|
|
public void deleteSelectStudent(String[] sids) {
|
|
if (sids != null && sids.length > 0) {
|
|
for (String sid : sids) {
|
|
dao.deleteStudentById(sid); // 调用 DAO 层方法批量删除学生
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 添加学生的完整信息。
|
|
*
|
|
* @param updateStudent 学生对象,包含完整的学生信息。
|
|
*/
|
|
@Override
|
|
public void addStudentAllInfo(Student updateStudent) {
|
|
dao.addStudentAllInfo(updateStudent); // 调用 DAO 层方法添加学生的完整信息
|
|
}
|
|
|
|
/**
|
|
* 查询所有学生选课信息。
|
|
*
|
|
* @return 返回所有学生的选课信息。
|
|
*/
|
|
@Override
|
|
public List<SelectCourse> findSelectCourseAllStudent() {
|
|
return dao.findSelectCourseAllStudent(); // 调用 DAO 层方法获取所有学生的选课信息
|
|
}
|
|
}
|