|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- XML声明,指定了XML的版本为1.0以及字符编码为UTF-8,这是告诉XML解析器如何正确解析该XML文件的基础信息 -->
|
|
|
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<!-- 文档类型定义(DOCTYPE)声明,表明此XML文档遵循MyBatis的Mapper 3.0的文档类型定义(DTD)规范,同时给出了DTD文件的网络地址,以便解析器能依据该DTD验证XML文档结构的正确性 -->
|
|
|
|
|
|
<mapper namespace="com.yf.exam.modules.paper.mapper.PaperQuAnswerMapper">
|
|
|
<!-- 定义了一个MyBatis的Mapper,namespace属性指定了该Mapper在整个项目中的唯一标识,这里对应着com.yf.exam.modules.paper.mapper.PaperQuAnswerMapper接口,用于将XML中的SQL语句与对应的Java接口方法关联起来 -->
|
|
|
|
|
|
<!-- 通用查询映射结果 -->
|
|
|
<resultMap id="BaseResultMap" type="com.yf.exam.modules.paper.entity.PaperQuAnswer">
|
|
|
<!-- 开始定义一个名为BaseResultMap的结果映射,用于将数据库查询结果准确地映射到指定的Java对象(这里是PaperQuAnswer类型)。id属性为该结果映射的唯一标识符 -->
|
|
|
<id column="id" property="id" />
|
|
|
<!-- 定义主键的映射关系,将数据库表中的id列的值映射到Java对象的id属性上。column属性指定数据库表中的列名,property属性指定要映射到的Java对象中的属性名 -->
|
|
|
<result column="paper_id" property="paperId" />
|
|
|
<!-- 把数据库表中的paper_id列的值映射到Java对象的paperId属性 -->
|
|
|
<result column="answer_id" property="answerId" />
|
|
|
<!-- 将数据库表中的answer_id列的值映射到Java对象的answerId属性 -->
|
|
|
<result column="qu_id" property="quId" />
|
|
|
<!-- 把数据库表中的qu_id列的值映射到Java对象的quId属性 -->
|
|
|
<result column="is_right" property="isRight" />
|
|
|
<!-- 将数据库表中的is_right列的值映射到Java对象的isRight属性 -->
|
|
|
<result column="checked" property="checked" />
|
|
|
<!-- 把数据库表中的checked列的值映射到Java对象的checked属性 -->
|
|
|
<result column="sort" property="sort" />
|
|
|
<!-- 将数据库表中的sort列的值映射到Java对象的sort属性 -->
|
|
|
<result column="abc" property="abc" />
|
|
|
<!-- 把数据库表中的abc列的值映射到Java对象的abc属性 -->
|
|
|
</resultMap>
|
|
|
|
|
|
<!-- 通用查询结果列 -->
|
|
|
<sql id="Base_Column_List">
|
|
|
<!-- 定义了一个名为Base_Column_List的SQL片段,可在其他SQL语句中引用,这里列出了通用查询时要从数据库表中选择的列名,使用反引号(`)括起来是为了防止列名是SQL关键字时出现语法错误 -->
|
|
|
`id`,`paper_id`,`answer_id`,`qu_id`,`is_right`,`checked`,`sort`,`abc`
|
|
|
</sql>
|
|
|
|
|
|
<resultMap id="ListResultMap"
|
|
|
type="com.yf.exam.modules.paper.dto.ext.PaperQuAnswerExtDTO"
|
|
|
extends="BaseResultMap">
|
|
|
<!-- 定义一个名为ListResultMap的结果映射,它的类型是PaperQuAnswerExtDTO,并且通过extends属性继承了BaseResultMap,意味着它会包含BaseResultMap中定义的所有映射关系,在此基础上还可以添加新的映射关系 -->
|
|
|
<result column="image" property="image" />
|
|
|
<!-- 新增的映射关系,将数据库表中的image列的值映射到Java对象的image属性 -->
|
|
|
<result column="content" property="content" />
|
|
|
<!-- 将数据库表中的content列的值映射到Java对象的content属性 -->
|
|
|
</resultMap>
|
|
|
|
|
|
|
|
|
<select id="list" resultMap="ListResultMap">
|
|
|
<!-- 定义一个名为list的查询语句,其结果将按照ListResultMap定义的映射关系进行映射 -->
|
|
|
SELECT pa.`id`,pa.`paper_id`,pa.`answer_id`,pa.`qu_id`,pa.`checked`,pa.`sort`,pa.`abc`,qa.content,qa.image
|
|
|
<!-- 从el_paper_qu_answer表(pa)中选择指定列以及通过LEFT JOIN连接el_qu_answer表(qa)获取相关列的数据,以便在查询结果中包含答案内容和图片等相关信息 -->
|
|
|
FROM el_paper_qu_answer pa
|
|
|
LEFT JOIN el_qu_answer qa ON pa.answer_id=qa.id
|
|
|
<!-- 使用LEFT JOIN连接el_paper_qu_answer表和el_qu_answer表,连接条件是pa.answer_id等于qa.id,这样可以获取到与试卷问题答案相关的完整信息 -->
|
|
|
WHERE pa.paper_id=#{paperId} AND pa.qu_id=#{quId}
|
|
|
<!-- 添加WHERE子句条件,筛选出在el_paper_qu_answer表中paper_id等于传入的#{paperId}参数值且qu_id等于传入的#{quId}参数值的记录 -->
|
|
|
ORDER BY pa.sort ASC
|
|
|
<!-- 按照pa.sort列的值进行升序排序,以便以特定顺序展示查询结果 -->
|
|
|
</select>
|
|
|
|
|
|
<select id="listForShow" resultMap="ListResultMap">
|
|
|
<!-- 定义一个名为listForShow的查询语句,其结果将按照ListResultMap定义的映射关系进行映射 -->
|
|
|
SELECT pa.`id`,pa.`paper_id`,pa.`answer_id`,pa.`qu_id`,pa.`checked`,pa.`clock`,pa.`abc`,qa.content,qa.is_right,qa.image
|
|
|
<!-- 从el_paper_qu_answer表(pa)中选择指定列以及通过LEFT JOIN连接el_qu_answer表(qa)获取相关列的数据,这里比上面的list查询多选择了qa.is_right列,以便在查询结果中包含答案是否正确等相关信息 -->
|
|
|
FROM el_paper_qu_answer pa
|
|
|
LEFT JOIN el_qu_answer qa ON pa.answer_id=qa.id
|
|
|
<!-- 使用LEFT JOIN连接el_paper_qu_answer表和el_qu_answer表,连接条件是pa.answer_id等于qa.id,这样可以获取到与试卷问题答案相关的完整信息 -->
|
|
|
WHERE pa.paper_id=#{paperId} AND pa.qu_id=#{quId}
|
|
|
<!-- 添加WHERE子句条件,筛选出在el_paper_qu_answer表中paper_id等于传入的#{paperId}参数值且qu_id等于传入的#{quId}参数值的记录 -->
|
|
|
ORDER BY pa.sort ASC
|
|
|
<!-- 按照pa.sort列的值进行升序排序,以便以特定顺序展示查询结果 -->
|
|
|
</select>
|
|
|
|
|
|
</mapper> |