myBatis中 collection 或 association 联合查询 中column 传入多个参数值

下面是一个树形结构表自连接 联合查询 Demo

<resultMap id="BaseResultMap"  type="com.maidan.daas.entity.AccoSysmanResource" >
    <id column="pid" property="pid" jdbcType="INTEGER" />
    <result column="createTime" property="createtime" jdbcType="TIMESTAMP" />
    <result column="delete_flag" property="deleteFlag" jdbcType="INTEGER" />
    <result column="description" property="description" jdbcType="VARCHAR" />
    <result column="href" property="href" jdbcType="VARCHAR" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="level" property="level" jdbcType="INTEGER" />
    <result column="resourceType" property="resourceType" jdbcType="INTEGER" />
    <result column="p_menu_id" property="pMenuId" jdbcType="INTEGER" />
    <result column="icon" property="icon" jdbcType="VARCHAR" />
  </resultMap>

<!--extends="BaseResultMap"   resultMap  相同列继承继承 -->

<resultMap type="com.maidan.daas.entity.AccoSysmanResource" id="ShopAccoSysmanResourceTree"  extends="BaseResultMap">
         <collection property="subResource"  javaType="ArrayList"
        column="pid" ofType="com.maidan.daas.entity.AccoSysmanResource">
             <id column="child_pid" property="pid" jdbcType="INTEGER" />
            <result column="child_createTime" property="createtime" jdbcType="TIMESTAMP" />
            <result column="child_delete_flag" property="deleteFlag" jdbcType="INTEGER" />
            <result column="child_description" property="description" jdbcType="VARCHAR" />
            <result column="child_href" property="href" jdbcType="VARCHAR" />
            <result column="child_name" property="name" jdbcType="VARCHAR" />
            <result column="child_level" property="level" jdbcType="INTEGER" />
            <result column="child_resourceType" property="resourceType" jdbcType="INTEGER" />
            <result column="child_p_menu_id" property="pMenuId" jdbcType="INTEGER" />
            <result column="child_icon" property="icon" jdbcType="VARCHAR" />
            <!-- 延迟加载 传递两个参数

    {pMenuId=child_pid,userId=userId}

     传递查询参数名称=字段名称

    -->
            <collection property="subResource"  javaType="ArrayList"  select="getShopChildAccoSysmanResource"
                column="{pMenuId=child_pid,userId=userId}" ofType="com.maidan.daas.entity.AccoSysmanResource" >
             </collection>
         </collection>
 </resultMap>

<select id="getShopChildAccoSysmanResource" parameterType="java.util.Map"  resultMap="BaseResultMap">

select
        *
         from acco_sysman_resource where delete_flag = 0  
         AND p_menu_id=#{pMenuId,jdbcType=INTEGER}
         ANDuser_id = #{userId,jdbcType=INTEGER}

</select>

时间: 2024-07-31 18:50:39

myBatis中 collection 或 association 联合查询 中column 传入多个参数值的相关文章

mybatis中association的column传入多个参数值

顾名思义,association是联合查询. 在使用association中一定要注意几个问题.文笔不好,白话文描述一下. 1: <association property="fncg_PD_QRY_MANAGE" column="###" select="###" /> fncg_PD_QRY_MANAGE 是哪来的?看红色部分, public class FNCG_PD_QRY extends BasePO{ private St

SQL联合查询中的关键语法(转)

联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码)    userid int         username   varchar(20)     password       varchar(20) 1                    jack                           jackpwd 2                    owen                        owenpwd t3表结构(用户积分,等级)    u

SQL联合查询中的关键语法

联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码)    userid int         username   varchar(20)     password       varchar(20) 1                    jack                           jackpwd 2                    owen                        owenpwd t3表结构(用户积分,等级)    u

Sql中联合查询中的”子查询返回的值不止一个“的问题

在子查询中,如果想实现如下的功能: select lib,count(*),select sum(newsNo) from Table1 group by lib from Tabel1 T1,Table2 T2 where T1.newsNo =T2.newsNo group by lib 就会提示“子查询返回的值不止一个.”的错误,意思是子查询不能返回多个结果,只能返回一个结果. 因此可以改用如下的方式: select lib,count(*),select sum(newsNo) from

联合查询中where 和and的区别

#管理后台,付费酒店如果没有所属部门的话,就默认为“4营销中心” #库里查询没有所属部门的总共有7106多家, SELECT a.`VHotelID`, a.`VHotelID`, b.`DepartmentID` FROM `table` a LEFT JOIN `table_info` b ON a.vhotelid = b.`VHotelID` WHERE a.`BusinessState` = 2 AND b.`DepartmentID` IS NULL ; 联合查询语句这里的where

MyBatis之三:多表联合查询

在这篇文章里面主要讲解如何在mybatis里面使用一对一.一对多.多表联合查询(类似视图)操作的例子. 注:阅读本文前请先大概看一下之前两篇文章. 一.表结构 班级表class,学生表student,班级学生关系表ClassStudent. 这里一个学生只会在一个班级里面,也就是一对一的关系:一个班级有多个学生,也就是一对多的关系. 结构如下: CREATE TABLE [dbo].[Class]( [class_id] [int] NOT NULL, [class_name] [varchar

Mybatis之collection与association标签

collection与association标签的功能就是为了解决查询条件映射到一个类或一个集合上,适用于对于多对一,一对多的映射结果,现在我们就探究其具体使用吧. 环境搭建: 数据库搭建 CREATE TABLE teacher ( id INT(10) NOT NULL, name VARCHAR(30) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO teacher(id, na

Mybatis中collection和association的使用区别

1. 关联-association2. 集合-collection 比如同时有User.java和Card.java两个类 User.java如下: public class User{ private Card card_one; private List<Card> card_many; } 在映射card_one属性时用association标签, 映射card_many时用collection标签. 所以association是用于一对一和多对一,而collection是用于一对多的关

mysql中的联合查询

一.基本语法 select 语句1 -- 所有select语句获取的字段数必须一致,与类型无关. union [union选项] -- 与select选项相同, all(全部保留) 和 distinct (去重), 不同的是,默认值为distinct. select 语句2 union...; 二.作用 1. 以不同的需求查询同一张表.如:查询学生信息,男生按年龄升序排序,女生按年龄降序排序. (select * from 表名 where sex = '男' order by age limi