Mybatis之ResultMap的使用

前言

一直在使用mybatis但一直没有好好使用过resultMap,最近写了一个考试系统,处理用户历史答题记录的时候,发现使用resultMap更方便一点

代码(可以跳过看结论)

pojo类

import cn.ims.exam.entity.Title;
import cn.ims.exam.entity.TitleAnswer;

import java.util.List;

public class TitlePo extends Title {

    private Integer userId;
    private List answerIds;
    private String num;
    private String typeName;
    private List answers;

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public List getAnswerIds() {
        return answerIds;
    }

    public void setAnswerIds(List answerIds) {
        this.answerIds = answerIds;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public List getAnswers() {
        return answers;
    }

    public void setAnswers(List answers) {
        this.answers = answers;
    }
}

resultMap设置(其中num为自定义的字段,它不和数据库中的字段关联,只用于接受传入的参数后传递给查询selectAllAnswerChecked)

 
        
        
        
        
        
        
        
        
        
        
        
        
    
Mapper:
List selectItems(@Param("po")UserItemPo po);

Mapper.xml:

 
    
结论

以上代码可以返回考试题目列表(包括每个题目的答案列表,以及每个题目考生的答案列表)
其中:

  • 可以设置自定义字段用于参数传递(num)
  • 可以设置自定义列表进行相关查询(即一对多的对应关系处理)
  • 注意collection中的参数传递为 column(参数名=对应result的column)

你可能感兴趣的:(Mybatis之ResultMap的使用)