一、查询
- 查询的列名,与questionResult中对应即可
//Mapper接口
List<Question> selectUserAllQuestion(@Param("user_id") int user_id);
//Mapper实现
<select id="selectUserAllQuestion" resultMap="questionResult">
SELECT a.id, a.question_content, a.type_id, e.type, a.question_analyse, a.question_answer, a.hardness_id,b.hardness,a.student_id,c.student,a.good_number
FROM cepc_question a
LEFT JOIN cepc_hardness b ON a.hardness_id=b.id
LEFT JOIN cepc_student c ON a.student_id=c.id
left join cepc_question_type e on a.type_id = e.id
WHERE owner_id = #{user_id} and is_delete = 0
</select>
二、插入
- 插入单条记录
//Mapper接口,想要获取自增主键,不能使用@Param
void saveUserQuestion(Question question);
//Mapper实现
<insert id="saveUserQuestion" parameterType="com.lonelyzhe.springboot.bean.Question" useGeneratedKeys="true" keyProperty="id" >
insert into
cepc_question(owner_id,question_content,question_analyse,question_answer,hardness_id,student_id,type_id)
values (
#{owner.id},
#{questionContent},
#{questionAnalyse},
#{questionAnswer},
#{hardness.id},
#{student.id},
#{questionType.id}
)
</insert>
- 批量插入
使用foreach标签
(1)collection:传入的集合参数名
(2)item:给集合中每个元素的命名
(3)index:索引方式
(4)separator:间隔符号
//Mapper接口
void saveQuestionTags(@Param("tags") List<QuestionAndTagId> tags);
//Mapper实现
<insert id="saveQuestionTags" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into cepc_question_tag_rel(question_id,tag_id)
values
<foreach collection="tags" item="questionAndTagId" index="index" separator=",">
(
#{questionAndTagId.questionId},
#{questionAndTagId.tagId}
)
</foreach>
</insert>
三、修改
和普通的修改没有什么区别
//Mapper接口
void updateUserQuestion(@Param("question") Question question);
//Mapper实现
<update id="updateUserQuestion" parameterType="com.lonelyzhe.springboot.bean.Question">
update cepc_question set
question_content = #{question.questionContent},
type_id = #{question.questionType.id},
question_analyse = #{question.questionAnalyse},
question_answer = #{question.questionAnswer},
hardness_id = #{question.hardness.id},
student_id = #{question.student.id}
where id = #{question.id}
</update>
四、删除
和普通的删除一样
//Mapper接口
void deleteQuestionTags(@Param("question_id") int question_id);
//Mapper实现
<delete id="deleteQuestionTags" parameterType="int">
delete from cepc_question_tag_rel where question_id = #{question_id}
</delete>