文档章节

mybatis collection 用法

@ccny
 @ccny
发布于 2015/08/07 11:29
字数 385
阅读 15718
收藏 5

官网 :http://www.mybatis.org/mybatis-3/zh/index.html

一、基本ResultMap

    column 与 property 是必须的,如果只写了column 也是没有效果的

    ofType 是对象的所属类型 javaType :collection 的类型

如:

 <collection property="questions" ofType="map" javaType="list">

对应的java 形态为 :List<Map<String,Object>> 

 

<resultMap type="map" id="getQuestionCrosswiseByTableNameMap">
    <result column="table_name"      property="tableName"/>
    <result column="survey_table_id" property="surveyTableId"/>
    <collection property="questions" ofType="map" javaType="list">
      <result column="question_crosswise_id"   property="questionCrosswiseId"/>
      <result column="question_crosswise_name" property="questionCrosswiseName"/>
    </collection>
  </resultMap>

 

二、内联查询

  <resultMap type="map" id="getQuestionCrosswiseByTableNameTwoMap">
      <result column="table_name" property="tableName"/>
      <result column="survey_table_id" property="surveyTableId"/>
      <collection property="questionGrooup" ofType="map" javaType="list">
          <result column="question_crosswise_id" property="questionCrosswiseId"/>
          <result column="question_crosswise_name" property="questionCrosswiseName"/>
            <collection property="questions"  fetchType="eager" column="question_crosswise_id" select="com.yikangyiliao.pension.dao.QuestionUnitDao.getQuestionUnitAnswerMapByQuetionCrosswiseId">                </collection>
  </collection>
  </resultMap>
 <resultMap type="map" id="QuestionUnitAnswerMap">
      <result column="question_portrait_id" property="questionPortraitId"></result>
      <result column="question_portrait_name" property="questionPortraitName"></result>
      <result column="answer_type"  property="answerType"/>
      <result column="weight_value"  property="weightVal"/>
      <collection property="answers" ofType="map" javaType="list">
          <result column="answer_id" property="answerId"/>
          <result column="answer_text" property="answerText"/>
          <result column="answer_val"property="answerVal"/>
      </collection>
  </resultMap>
  
  <select id="getQuestionUnitAnswerMapByQuetionCrosswiseId" resultMap="QuestionUnitAnswerMap"     parameterType="long">
        select qp.question_portrait_id,
        qp.question_portrait_name,
                answers.answer_id,
                answers.answer_text,
                answers.answer_val,
                qcpa.answer_type,
                    quw.weight_value
        from question_units qp 
        left join question_unit_answer_maps qcpa
        on qp.question_portrait_id=qcpa.question_portrait_group
        left join answers on qcpa.answer_id=answers.answer_id
            left join question_unit_weights quw on qp.question_portrait_id=quw.question_portrait_id
        where qp.question_crosswise_id=#{questionCrosswiseId}
  </select>

2.多参数内联查询 column="{questionId=question_id,userId=user_id}"

<resultMap type="map" id="getQuestionCrosswiseByTableNameTwoMap">
  <result column="table_name" property="tableName"/>
  <result column="survey_table_id" property="surveyTableId"/>
  <collection property="questionGrooup" ofType="map" javaType="list">
     <result column="question_crosswise_id" property="questionCrosswiseId"/>
     <result column="question_crosswise_name" property="questionCrosswiseName"/>
     <collection property="questions"  fetchType="eager" column="{questionCrosswiseId=question_crosswise_id,userId=create_user_id}" select="com.yikangyiliao.pension.dao.QuestionUnitDao.getQuestionUnitAnswerMapByQuetionCrosswiseId">                
     </collection>
  </collection>
</resultMap>

<select id="getQuestionUnitAnswerMapByQuetionCrosswiseId" parameterType="map">
  select * from answer where question_id=#{questionId} and user_id=#{userId}
</select>

 三、多层嵌套

 

<resultMap type="map" id="GetQuestionsAndAnswersByTableNameMap">
   <result column="survey_table_id" property="surveyTableId"/>
   <result column="table_name" property="tableName"/>
   <collection property="questions" ofType="map" javaType="list">
      <result column="question_id" property="questionId"/>
      <result column="question_text" property="questionText"/>
      <collection property="answers"  ofType="map" javaType="list">
         <result column="answer_id" property="answerId"/>
         <result column="answer_text" property="answerText"/>
         <result column="answer_val" property="answerVal"/>
      </collection>
    </collection>
</resultMap>

 

© 著作权归作者所有

@ccny

@ccny

粉丝 14
博文 122
码字总数 29405
作品 0
东城
架构师
私信 提问
参数为集合时,mybatis3 分页查询问题及其对应的解决方法

当参数为集合时,使用mybatis3分页查询时抛出的异常: UserMapperTest.java的部分代码(测试用例): UserMapper.java部分代码: UserMapper.xml代码(错误的用法示范): 执行测试用例后,后...

有钱有爱
2016/06/17
118
0
java表的分组查询collection用法

最近在学习java做项目中遇到了关联查询之后要填充modl,但是model是分组的,里面有多个数组,如果只是用关联查询,对于这种会出现重复查询,所以这里要用到Mybatis的collection来处理 1、首先...

Iam光星人
2018/12/24
0
0
使用Mybatis的Generator可能导致的一个错误

mybatis的代码自动生成脚本:(该脚本具体用法有空再来补充) java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite 使用该脚本生成的代码拷打项目中后,...

zqz0125
2015/05/19
327
0
MyBatis关联查询,商品跟订单这种多关系关联查询其实很简单的

  好程序员Java学习路线分享MyBatis之关联查询,我们进行数据库查询时往往需要的不止一张表的数据,需要将多张表的数据一起查询出来,大家学习过数据库的连接查询,那么在MyBatis中如何将有...

Java高级进阶架构师
09/23
0
0
Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

相关文章 Mybatis 解析配置文件的源码解析 Mybatis 类型转换源码分析 Mybatis 数据源和数据库连接池源码解析(DataSource) Mybatis Mapper 接口源码解析(binding包) Mybatis 解析 SQL 源码...

tsmyk0715
2018/11/18
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
4
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部