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.
exam/mapper/paper/PaperQuAnswerMapper.xml

76 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- 声明 XML 文档版本为 1.0,并指定字符编码为 UTF-8确保文档能正确处理各种字符 -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义文档类型,引用 MyBatis Mapper 3.0 的 DTD用于验证当前 XML 文档是否符合 MyBatis Mapper 规范 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 定义 Mapper 命名空间,将此 XML 映射文件与对应的 Java Mapper 接口关联起来,方便 MyBatis 找到对应的操作方法 -->
<mapper namespace="com.yf.exam.modules.paper.mapper.PaperQuAnswerMapper">
<!-- 通用查询映射结果 -->
<!-- 定义一个基础结果映射,将数据库查询结果映射到 Java 实体类 com.yf.exam.modules.paper.entity.PaperQuAnswer -->
<resultMap id="BaseResultMap" type="com.yf.exam.modules.paper.entity.PaperQuAnswer">
<!-- 映射数据库表的主键列 id 到 Java 实体类的 id 属性 -->
<id column="id" property="id" />
<!-- 映射数据库表的 paper_id 列到 Java 实体类的 paperId 属性 -->
<result column="paper_id" property="paperId" />
<!-- 映射数据库表的 answer_id 列到 Java 实体类的 answerId 属性 -->
<result column="answer_id" property="answerId" />
<!-- 映射数据库表的 qu_id 列到 Java 实体类的 quId 属性 -->
<result column="qu_id" property="quId" />
<!-- 映射数据库表的 is_right 列到 Java 实体类的 isRight 属性 -->
<result column="is_right" property="isRight" />
<!-- 映射数据库表的 checked 列到 Java 实体类的 checked 属性 -->
<result column="checked" property="checked" />
<!-- 映射数据库表的 sort 列到 Java 实体类的 sort 属性 -->
<result column="sort" property="sort" />
<!-- 映射数据库表的 abc 列到 Java 实体类的 abc 属性 -->
<result column="abc" property="abc" />
</resultMap>
<!-- 通用查询结果列 -->
<!-- 定义一段可复用的 SQL 片段,包含常用的查询列,可在其他 SQL 语句中通过 <include> 标签引用 -->
<sql id="Base_Column_List">
`id`,`paper_id`,`answer_id`,`qu_id`,`is_right`,`checked`,`sort`,`abc`
</sql>
<!-- 定义一个扩展的结果映射,继承自 BaseResultMap将结果映射到 Java DTO 类 com.yf.exam.modules.paper.dto.ext.PaperQuAnswerExtDTO -->
<resultMap id="ListResultMap"
type="com.yf.exam.modules.paper.dto.ext.PaperQuAnswerExtDTO"
extends="BaseResultMap">
<!-- 映射数据库表的 image 列到 Java DTO 类的 image 属性 -->
<result column="image" property="image" />
<!-- 映射数据库表的 content 列到 Java DTO 类的 content 属性 -->
<result column="content" property="content" />
</resultMap>
<!-- 定义一个查询方法,用于根据试卷 ID 和题目 ID 查询相关答案列表 -->
<!-- id 属性为查询方法的唯一标识,对应 Java Mapper 接口中的方法名 -->
<!-- resultMap 属性指定使用 ListResultMap 进行结果映射 -->
<select id="list" resultMap="ListResultMap">
<!-- 查询指定列,包括 el_paper_qu_answer 表和 el_qu_answer 表的相关列 -->
SELECT pa.`id`,pa.`paper_id`,pa.`answer_id`,pa.`qu_id`,pa.`checked`,pa.`sort`,pa.`abc`,qa.content,qa.image
FROM el_paper_qu_answer pa
<!-- 左连接 el_qu_answer 表,通过 answer_id 和 id 关联 -->
LEFT JOIN el_qu_answer qa ON pa.answer_id=qa.id
<!-- 根据传入的 paperId 和 quId 进行筛选 -->
WHERE pa.paper_id=#{paperId} AND pa.qu_id=#{quId}
<!-- 按 sort 字段升序排序 -->
ORDER BY pa.sort ASC
</select>
<!-- 定义一个查询方法,用于根据试卷 ID 和题目 ID 查询相关答案列表,用于展示场景 -->
<!-- id 属性为查询方法的唯一标识,对应 Java Mapper 接口中的方法名 -->
<!-- resultMap 属性指定使用 ListResultMap 进行结果映射 -->
<select id="listForShow" resultMap="ListResultMap">
<!-- 查询指定列,包括 el_paper_qu_answer 表和 el_qu_answer 表的相关列,包含 is_right 列 -->
SELECT pa.`id`,pa.`paper_id`,pa.`answer_id`,pa.`qu_id`,pa.`checked`,pa.`sort`,pa.`abc`,qa.content,qa.is_right,qa.image
FROM el_paper_qu_answer pa
<!-- 左连接 el_qu_answer 表,通过 answer_id 和 id 关联 -->
LEFT JOIN el_qu_answer qa ON pa.answer_id=qa.id
<!-- 根据传入的 paperId 和 quId 进行筛选 -->
WHERE pa.paper_id=#{paperId} AND pa.qu_id=#{quId}
<!-- 按 sort 字段升序排序 -->
ORDER BY pa.sort ASC
</select>
</mapper>