|
|
|
|
@ -6,35 +6,73 @@ import com.hua.dao.DAO;
|
|
|
|
|
import com.hua.dao.ExamArrangeDAO;
|
|
|
|
|
import com.hua.entity.ExamArrange;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* `ExamArrangeDAOImpl`类是数据访问对象(DAO)的具体实现类,用于操作与考试安排相关的数据,
|
|
|
|
|
* 它继承自泛型的`DAO`类,并实现了`ExamArrangeDAO`接口,通过编写具体的SQL语句来实现对考试安排信息在数据库中的增删改查等操作。
|
|
|
|
|
*/
|
|
|
|
|
public class ExamArrangeDAOImpl extends DAO<ExamArrange> implements ExamArrangeDAO {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有考试安排信息的方法。
|
|
|
|
|
* 该方法通过构造一条查询所有记录的SQL语句(从名为`examarrange`的数据库表中获取所有数据),
|
|
|
|
|
* 然后调用父类`DAO`中的`getForList`方法来执行查询操作,并将查询结果(以数据库表记录形式返回的数据)转换为`List<ExamArrange>`类型的列表返回,
|
|
|
|
|
* 列表中的每个元素都对应数据库表中的一条记录,且被转换为`ExamArrange`类型的对象,代表一个具体的考试安排。
|
|
|
|
|
*
|
|
|
|
|
* @return 返回包含所有考试安排信息的列表,列表中的元素为`ExamArrange`类型的对象,若数据库表中无记录则返回空列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<ExamArrange> getAll() {
|
|
|
|
|
String sql = "SELECT * FROM examarrange;";
|
|
|
|
|
return getForList(sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据学生ID获取该学生相关的所有考试安排信息的方法。
|
|
|
|
|
* 首先构造了一条带有条件查询的SQL语句,通过指定`studentId`作为查询条件,从`examarrange`表中筛选出对应学生的所有考试安排记录,
|
|
|
|
|
* 之后调用父类`DAO`中的`getForList`方法来执行这个带有条件的查询,并将查询结果以`List<ExamArrange>`的形式返回,
|
|
|
|
|
* 返回的列表中包含了该学生对应的所有考试安排对象,若不存在该学生的考试安排记录则返回空列表。
|
|
|
|
|
*
|
|
|
|
|
* @param studentId 要查询考试安排的学生的唯一标识符,用于在数据库表中定位相应的考试安排记录。
|
|
|
|
|
* @return 返回对应学生的考试安排信息列表,列表元素为`ExamArrange`类型的对象,若该学生无考试安排记录则返回空列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<ExamArrange> getAllWithStudentId(String studentId) {
|
|
|
|
|
String sql = "select *from examarrange where studentId = ?";
|
|
|
|
|
String sql = "select *from examarrange where studentId =?";
|
|
|
|
|
return getForList(sql, studentId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 向数据库中插入一条新的考试安排记录的方法。
|
|
|
|
|
* 先构建了一条插入数据的SQL语句,该语句明确了要插入数据的列以及对应的值的占位符(`?`),
|
|
|
|
|
* 接着调用父类`DAO`中的`update`方法(此处`update`方法实际上执行的是插入操作,名称可能有些容易混淆,但其功能符合此处需求),
|
|
|
|
|
* 将考试安排对象(`examArrange`)中的各个属性值按照SQL语句中占位符的顺序依次传递进去,
|
|
|
|
|
* 以此将新的考试安排数据插入到数据库的`examarrange`表中。
|
|
|
|
|
*
|
|
|
|
|
* @param examArrange 包含要插入的考试安排信息的`ExamArrange`对象,其各个属性值将被插入到数据库表对应的列中。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void insert(ExamArrange examArrange) {
|
|
|
|
|
String sql = "insert into examarrange values(?,?,?,?,?,?,?,?,?,?)";
|
|
|
|
|
update(sql , examArrange.getYearTerm(),examArrange.getStudentId(), examArrange.getStudentName(),
|
|
|
|
|
update(sql, examArrange.getYearTerm(),examArrange.getStudentId(), examArrange.getStudentName(),
|
|
|
|
|
examArrange.getExamCourse(), examArrange.getExamWay(),examArrange.getExamTime(),
|
|
|
|
|
examArrange.getExamWeek(),examArrange.getExamCampus(), examArrange.getExamplace(),
|
|
|
|
|
examArrange.getExamSeatNum());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据传入的考试安排对象更新数据库中对应记录的方法。
|
|
|
|
|
* 构造了一条更新数据的SQL语句,指定了要更新的列以及更新的条件(通过`YearTerm`、`studentId`和`ExamCourse`的组合来定位要更新的记录),
|
|
|
|
|
* 随后调用父类`DAO`中的`update`方法,将考试安排对象(`examArrange`)中相关属性值按照SQL语句中占位符的顺序依次传递进去,
|
|
|
|
|
* 实现对数据库中对应考试安排记录的更新操作,确保数据库中的数据与传入的考试安排对象中的最新信息保持一致。
|
|
|
|
|
*
|
|
|
|
|
* @param examArrange 包含更新后考试安排信息的`ExamArrange`对象,其属性值将用于更新数据库中对应记录的相应列。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void update(ExamArrange examArrange) {
|
|
|
|
|
String sql = "update examarrange set StudentName = ?,ExamWay = ?, ExamTime = ?, " +
|
|
|
|
|
"ExamWeek = ?, ExamCampus = ?, Examplace = ?, ExamSeatNum = ? " +
|
|
|
|
|
"where YearTerm = ? and studentId = ? and ExamCourse = ?";
|
|
|
|
|
String sql = "update examarrange set StudentName =?,ExamWay =?, ExamTime =?, " +
|
|
|
|
|
"ExamWeek =?, ExamCampus =?, Examplace =?, ExamSeatNum =? " +
|
|
|
|
|
"where YearTerm =? and studentId =? and ExamCourse =?";
|
|
|
|
|
update(sql, examArrange.getStudentName(), examArrange.getExamWay(),examArrange.getExamTime(),
|
|
|
|
|
examArrange.getExamWeek(),examArrange.getExamCampus(), examArrange.getExamplace(),
|
|
|
|
|
examArrange.getExamSeatNum(),examArrange.getYearTerm(),examArrange.getStudentId(),
|
|
|
|
|
@ -42,23 +80,49 @@ public class ExamArrangeDAOImpl extends DAO<ExamArrange> implements ExamArrangeD
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据学生ID删除数据库中对应的考试安排记录的方法。
|
|
|
|
|
* 构建了一条删除数据的SQL语句,以`studentId`作为删除条件,从`examarrange`表中删除对应学生的所有考试安排记录,
|
|
|
|
|
* 再调用父类`DAO`中的`update`方法(底层可能通过执行SQL的`executeUpdate`等相关操作来实现删除功能)来执行删除操作,
|
|
|
|
|
* 使得数据库中对应学生的考试安排数据被移除。
|
|
|
|
|
*
|
|
|
|
|
* @param studentId 要删除考试安排记录的学生的唯一标识符,用于在数据库表中定位要删除的记录。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void delete(String studentId) {
|
|
|
|
|
String sql = "delete from examarrange where studentId = ?";
|
|
|
|
|
String sql = "delete from examarrange where studentId =?";
|
|
|
|
|
update(sql, studentId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* (目前是未实现的方法,可能需要根据具体业务需求完善)
|
|
|
|
|
* 按照名称获取考试安排记录数量的方法,此处暂时返回0,后续或许需要根据实际的业务逻辑编写具体的SQL查询语句,
|
|
|
|
|
* 用于统计满足特定名称相关条件下的考试安排记录数量,并返回相应的计数值。
|
|
|
|
|
*
|
|
|
|
|
* @param studentId 此处参数名称可能不太准确(也许和实际业务中用于统计的关键条件相关,需要进一步确认),可能需要根据业务场景修改完善逻辑。
|
|
|
|
|
* @return 目前固定返回0,后续完善代码后应返回满足特定条件下的考试安排记录数量。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public long getCountWithName(String studentId) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据学生ID和学年学期获取相应考试安排信息的方法。
|
|
|
|
|
* 构造了一条带有多个条件查询的SQL语句,通过指定`studentId`和`yearTerm`作为查询条件,从`examarrange`表中筛选出符合条件的考试安排记录,
|
|
|
|
|
* 然后调用父类`DAO`中的`getForList`方法来执行查询,并将查询结果以`List<ExamArrange>`的形式返回,
|
|
|
|
|
* 返回的列表中包含了满足给定学生ID和学年学期条件的所有考试安排对象,若不存在匹配记录则返回空列表。
|
|
|
|
|
*
|
|
|
|
|
* @param studentId 要查询考试安排的学生的唯一标识符,用于在数据库表中筛选对应的考试安排记录。
|
|
|
|
|
* @param yearTerm 表示学年学期的字符串,用于进一步缩小查询范围,筛选出对应学年学期下该学生的考试安排记录。
|
|
|
|
|
* @return 返回满足给定学生ID和学年学期条件的考试安排信息列表,列表中的元素为`ExamArrange`类型的对象,若无匹配记录则返回空列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<ExamArrange> getAllWithYearTerm(String studentId,
|
|
|
|
|
String yearTerm) {
|
|
|
|
|
String sql = "SELECT * FROM examarrange where studentId = ? and yearTerm = ?;";
|
|
|
|
|
String yearTerm) {
|
|
|
|
|
String sql = "SELECT * FROM examarrange where studentId =? and yearTerm =?";
|
|
|
|
|
return getForList(sql, studentId, yearTerm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|