`
qq38450529
  • 浏览: 27815 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MyBatis-foreach

阅读更多
	<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>
分享到:
评论

相关推荐

    mybatis-3.5.9 源码(mybatis-3-mybatis-3.5.9.zip)

    - MyBatis 的强大之处在于其支持动态 SQL,通过 if、choose、when、otherwise、foreach 等标签,可以在 XML 映射文件中编写复杂的条件判断和循环。 8. **缓存机制** - MyBatis 提供了本地缓存(Local Cache)和二...

    mybatis-3-mybatis-3.5.6.zip

    例如,`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签可以实现条件判断,`&lt;foreach&gt;`标签则用于循环遍历集合,动态生成IN语句。 此外,MyBatis的缓存机制也是其亮点之一。它分为一级缓存(SqlSession级别的...

    mybatis-3.2.7.zip

    - MyBatis的动态SQL非常强大,通过`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;trim&gt;`, `&lt;foreach&gt;`等标签实现灵活的SQL构建。 8. **缓存机制**: - MyBatis内置了一级缓存(SqlSession级别)和...

    mybatis-3.2.2.jar

    其次,MyBatis提供了强大的动态SQL功能,比如if、choose、when、otherwise、where、set、foreach等标签,可以在映射文件中灵活构建SQL语句,实现条件判断、循环等复杂逻辑。这种动态SQL的能力使得MyBatis在处理各种...

    mybatis-3-mybatis-3.5.7.zip源码

    5. **动态SQL**:MyBatis支持动态SQL,允许在XML映射文件中编写条件语句,如`if`, `choose`, `when`, `otherwise`, `where`, `trim`, `foreach`等元素,提高了SQL的灵活性。 6. **Executor执行器**:MyBatis有三种...

    mybatis-3.4.5 +中文用户指南

    4. **动态SQL**:MyBatis的强项之一,通过、、、、&lt;foreach&gt;等标签实现动态SQL语句。 5. **Mapper接口**:介绍如何使用注解方式定义Mapper接口,以及如何通过MapperFactoryBean来实例化Mapper。 6. **Executor执行...

    mybatis-3.5.0.zip

    4. **动态SQL**:MyBatis的动态SQL功能强大,可以在XML映射文件或注解中使用if、choose、when、otherwise、where、trim、foreach等标签,实现灵活的SQL构建,避免硬编码SQL。 5. **参数映射**:MyBatis支持简单参数...

    mybatis-day02

    MyBatis支持动态SQL,这使得在XML映射文件中可以编写条件语句,如`if`, `choose`, `when`, `otherwise`, `where`, `trim`, `foreach`等标签。这大大提高了SQL语句的灵活性,可以根据业务需求构建复杂的查询条件。 ...

    mybatis-3-mybatis-3.5.4-src-read.zip

    例如,使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签实现条件判断,以及`&lt;foreach&gt;`进行循环处理。 4. **Mapper接口与XML映射文件**: Mapper接口定义了业务方法,而XML映射文件则定义了对应的SQL语句。...

    MyBatis-3-User-Guide.pdf

    MyBatis 允许使用动态 SQL 来构造不同的 SQL 语句,文档中介绍了 if、choose、when、otherwise、trim、where、set 以及 foreach 标签的使用方法。动态 SQL 提供了巨大的灵活性,使得开发者可以根据运行时条件构建出...

    MyBatis-Simplified-Chinese.rar_ mybatis-3_Mybatis-spring_mybatis

    MyBatis 的动态 SQL 功能非常强大,允许在 SQL 映射文件中使用 if、choose、when、otherwise、where、foreach 等元素,实现 SQL 语句的条件判断和循环构建,大大提高了 SQL 的灵活性。 六、MyBatis 与 Spring 集成 ...

    mybatis-3.5.4.pdf

    - **foreach**:循环遍历集合中的元素。 ### Java API #### 6.1 Java API 使用指南 除了通过XML配置外,MyBatis还支持通过Java API来进行操作。主要涉及以下几个方面: - **SqlSessionFactory**:用于创建...

    mybatis-3-mybatis-3.5.13.tar.gz

    例如,`if`, `choose`, `when`, `otherwise`, `trim`, `where`, `foreach` 等标签可以灵活控制 SQL 的构建。 3. **参数映射**:MyBatis 自动将 Java 对象的属性值映射到 SQL 语句的参数,反之也将结果集映射为 Java...

    mybatis-3.2.8jar包及其源码jar包

    - **&lt;foreach&gt;**:用于遍历集合,生成嵌套的SQL片段。 5. **缓存机制** - MyBatis提供了一级缓存(默认开启)和二级缓存(可配置),提高数据读取速度。 - **@CacheNamespace**:在Mapper接口上启用二级缓存。 ...

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...

    mybatis-plus_batch_insert:mybatis_plus添加批量插入

    MyBatis-Plus 是 MyBatis 的一个扩展,它提供了许多便利的功能,如自动化 CRUD 操作,简化 SQL 编写,以及对复杂查询的支持。在处理大量数据时,批量插入(Batch Insert)是一种非常有效的方法,可以显著提高数据库...

    mybatis-3.5.8.zip

    例如,使用`&lt;if&gt;`、`&lt;choose&gt;`(`&lt;when&gt;`、`&lt;otherwise&gt;`)、`&lt;foreach&gt;`等标签。 4. **缓存机制**: MyBatis提供了一级缓存和二级缓存。一级缓存是SqlSession级别的,同一个SqlSession内的多次查询会复用之前的...

    springboot-mybatis-jsp整合

    例如,通过${}表达式访问模型数据,使用&lt;c:forEach&gt;遍历集合,显示列表信息。同时,JSP还可以包含HTML、CSS和JavaScript,以实现丰富的交互效果。 总的来说,"springboot-mybatis-jsp整合"项目展示了如何在Spring ...

    MyBatis-Plus 分页查询以及自定义sql分页的实现

    records.forEach(System.out::println); } ``` 在上述代码中,`QueryWrapper` 用于构建 SQL 查询条件,`Page` 用于存储分页参数。执行后,会先执行一个计数查询获取总记录数,然后执行实际的分页查询。 ## 四、...

    Mybatis-Plus.pdf

    userList.forEach(System.out::println); } } ``` 通过上述内容可以看出,Mybatis-Plus通过一系列强大的功能,为开发者提供了一个高效且便捷的数据库操作解决方案。无论是对于初学者还是有经验的开发者来说,...

Global site tag (gtag.js) - Google Analytics