文档章节

MyBatis-foreach

蒲晓伟
 蒲晓伟
发布于 2015/11/13 12:01
字数 167
阅读 91
收藏 0
<select id="list" parameterType="domain.AccountQuery" resultMap="baseResult">
		SELECT distinct a.id,a.accountId,a.password,a.status,a.platformId,a.createDate,a.lastModifyDate,a.lastLoginTime
		 FROM T_AUTH_ACCOUNT a,T_AUTH_ACCOUNT_EXTENSION e  
		where a.accountId=e.accountId and a.platformId=#{platformId}

		<if test="accountId != null">
		    AND a.accountId like '%' || #{accountId} || '%'
		</if>
		<if test="roleId != null and groupId == null">
		    AND a.id in (select accountId from T_TUAH_ACCOUNT_ROLE r where r.roleId=#{roleId})
		</if>
		<if test="groupId != null and roleId == null">
		    AND a.id in (select accountId from T_AUTH_ACCOUNT_GROUP g where g.groupId=#{groupId})
		</if>
		<if test="roleId != null and groupId != null">
		    AND a.id in (select r.accountId from T_AUTH_ACCOUNT_GROUP g,T_TUAH_ACCOUNT_ROLE r 
		    				 where r.accountId=g.accountId and r.roleId=#{roleId} and g.groupId=#{groupId})
		</if>
		<if test="accountExts != null">
			AND a.accountId in( select accountId from 
			<foreach collection="accountExts" item="ext" separator=" join " index="index">
			    (select accountId from T_AUTH_ACCOUNT_EXTENSION e1 where
			    e1.propBTypeId = #{ext.propBTypeId} AND e1.propSTypeCode = #{ext.propSTypeCode} AND e1.propValue=#{ext.propValue,jdbcType=VARCHAR}) t${index}
			    <if test="index!=0">
			        using(accountId)
			    </if>
			</foreach>)
		</if>
		<if test="limit != null">
			LIMIT #{limit}
		</if>
		<if test="offset != null">
			OFFSET #{offset}
		</if>
	</select>

本文转载自:http://tiamo.iteye.com/blog/1705797

蒲晓伟
粉丝 1
博文 21
码字总数 1076
作品 0
深圳
技术主管
私信 提问
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis、mybatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
2018/12/16
1K
13
mybatis批量操作问题总结

1、mybatis接受list参数问题 在http://mybatis.github.io/mybatis-3/zh/dynamic-sql.html#foreach里有一段说明: 写道 注意 你可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你...

Elivense
2016/11/30
14
0
mybatis(九)强大的动态SQL

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

LCZ777
2014/12/20
56
0
Mybatyis foreache 中的BUG

标签在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句。 foreach的参数: foreach元素的属性主要有 item,index,collection,open,separator,close。 item表示集合中每一个元素...

ahpome
2018/10/26
104
0
mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler

或许是惯性思维,在mybatis使用foreach循环调用的时候,很多时候都是传一个对象,传一个List的情况很少,所以写代码有时候会不注意就用惯性思维方法做了。 今天向sql传参,传了一个List作为参...

smileNicky
2018/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
17分钟前
4
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
18分钟前
2
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
20分钟前
4
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
24分钟前
3
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部