文档章节

mybatis collection

王虫虫
 王虫虫
发布于 2016/07/16 09:04
字数 331
阅读 49
收藏 0

下面2段代码实现的方式是一样的,实现的功能是迭代(菜单级次迭代等),

collection属性有

property为resultMap中type类的属性

column为迭代中建立连接的字段

ofType为返回的类型

select 为查询的sqlid

 

<!--根据父级获取子集返回对象-->
<resultMap id="cascadeLoadSysRoleFunc" type="sysFunctionVO">
<id property="sfId" column="sf_id" />
<result property="sfParentId" column="sys_sf_id" />
<result property="sfName" column="sf_name" />
<result property="sfOrder" column="sf_order" />
<result property="srId" column="sr_id" />
<collection property="sysFunctionVOList" column="{srId=sr_Id,srId=sr_Id,sfId=sf_id}" ofType="sysFunctionVO" javaType="java.util.ArrayList"
             select="findSysRoleFuncObjectTree"></collection>
</resultMap>

<!-- 根据父级id查询子级数据 -->
<select id="findSysRoleFuncObjectTree" resultMap="cascadeLoadSysRoleFunc"  parameterType="sysFunctionVO">
SELECT CONCAT(#{srId}) AS sr_id,st.* FROM (SELECT * FROM sys_function WHERE sf_id IN 
(SELECT sf_id FROM sys_role_function WHERE sr_id =
#{srId})) AS st
WHERE st.sys_sf_id = 
 #{sfId
order by sf_order
</select> 


	<resultMap type="com.hy.web.bean.UserFunctionBean" id="baseTreeAdminMenu">
		<id column="id" property="menuId"/>
		<result column="name" property="menuName"/>
		<result column="url" property="menuUrl"/>
		<result column="parent_id" property="parentId"/>
		<result column="system_id" property="sysId"/>
		<collection property="children" ofType="com.hy.web.bean.UserFunctionBean" 
        column="sysId=system_id,parentId=id"
		select="getAdminSonMenu"/>
	</resultMap>
	
	<select id="getAdminMenu" parameterType="com.hy.web.bean.UserFunctionBean" 
        resultMap="baseTreeAdminMenu">
		SELECT m.id,m.name,m.url,m.parent_id,tsm.system_id
		FROM  t_menu m,t_system_menu tsm
		WHERE 
		 tsm.system_id = #{sysId}
		 AND m.id=tsm.menu_id 
		<if test="parentId == null or parentId == '' ">
			AND parent_id is null
		</if>
		<if test="parentId != null and parentId != '' ">
			AND parent_id = #{parentId}
		</if>
		AND IFNULL(m.isdel,'0') != '1'
		GROUP BY m.id
		ORDER BY m.displayno
	</select>
	
	<select id="getAdminSonMenu" parameterType="com.hy.web.bean.UserFunctionBean" 
       resultMap="baseTreeAdminMenu">
		SELECT m.id,m.name,m.url,m.parent_id,#{sysId} as system_id
		FROM  t_menu m
		WHERE 1 = 1
		<if test="parentId == null or parentId == '' ">
			AND parent_id is null
		</if>
		<if test="parentId != null and parentId != '' ">
			AND parent_id = #{parentId}
		</if>
		AND IFNULL(m.isdel,'0') != '1'
		GROUP BY m.id
		ORDER BY m.displayno
	</select>
	

 

© 著作权归作者所有

王虫虫
粉丝 0
博文 95
码字总数 31028
作品 0
顺义
程序员
私信 提问
MyBatis多对多关联查询示例——MyBatis学习笔记之十八

MyBatis系列的上一篇博客发表时,笑笑还没有出生。转眼间八个月过去了,他已经是个大宝宝了。这么长时间未更新MyBatis系列的博客,想来真是罪过。不过有了宝宝之后,的确会分散自己很大一部分...

NashMaster2011
2014/04/23
0
0
mybatis(九)强大的动态SQL

上篇文章简单介绍了mybatis的查询,至此,CRUD都已讲完。本文将介绍mybatis强大的动态SQL。 那么,问题来了: 什么是动态SQL? 动态SQL有什么作用?   传统的使用JDBC的方法,相信大家在组合...

LCZ777
2014/12/20
0
0
Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

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

tsmyk0715
2018/11/18
0
0
Mybatis新版使用foreach标签遍历Set集合

文章来源:https://my.oschina.net/u/3844121/blog/1976103 网上的答案没有谈遍历Set集合的,这里来谈谈写法。 版本:我的版本是mabatis-3.4.6,具体哪个版本开始支持Set集合不清楚,3.4.6版...

唐小苏
2018/09/06
0
0
mybatis处理集合和循环数组问题

在使用foreach的时候最容易出错的就是collection属性,该属性是必须指定的,在不同情况 下,该属性的值是不一样的,主要有一下3种情况: 1. 如果传入的是单参数且参数类型是一个List的时候,...

岳静
2012/07/19
0
3

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
5
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部