Mybatis数据库操作

一、查询

  1. 查询的列名,与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>

二、插入

  1. 插入单条记录
//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>
  1. 批量插入
    使用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>
发布了98 篇原创文章 · 获赞 21 · 访问量 6415

猜你喜欢

转载自blog.csdn.net/qq_42396168/article/details/105100204