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.
test/src-源文件/main/resources/mapper/paper/PaperQuAnswerMapper.xml

74 lines
5.9 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 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的Mappernamespace属性指定了该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>