<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 的强大之处在于其支持动态 SQL,通过 if、choose、when、otherwise、foreach 等标签,可以在 XML 映射文件中编写复杂的条件判断和循环。 8. **缓存机制** - MyBatis 提供了本地缓存(Local Cache)和二...
例如,`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签可以实现条件判断,`<foreach>`标签则用于循环遍历集合,动态生成IN语句。 此外,MyBatis的缓存机制也是其亮点之一。它分为一级缓存(SqlSession级别的...
- MyBatis的动态SQL非常强大,通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<trim>`, `<foreach>`等标签实现灵活的SQL构建。 8. **缓存机制**: - MyBatis内置了一级缓存(SqlSession级别)和...
其次,MyBatis提供了强大的动态SQL功能,比如if、choose、when、otherwise、where、set、foreach等标签,可以在映射文件中灵活构建SQL语句,实现条件判断、循环等复杂逻辑。这种动态SQL的能力使得MyBatis在处理各种...
5. **动态SQL**:MyBatis支持动态SQL,允许在XML映射文件中编写条件语句,如`if`, `choose`, `when`, `otherwise`, `where`, `trim`, `foreach`等元素,提高了SQL的灵活性。 6. **Executor执行器**:MyBatis有三种...
4. **动态SQL**:MyBatis的强项之一,通过、、、、<foreach>等标签实现动态SQL语句。 5. **Mapper接口**:介绍如何使用注解方式定义Mapper接口,以及如何通过MapperFactoryBean来实例化Mapper。 6. **Executor执行...
4. **动态SQL**:MyBatis的动态SQL功能强大,可以在XML映射文件或注解中使用if、choose、when、otherwise、where、trim、foreach等标签,实现灵活的SQL构建,避免硬编码SQL。 5. **参数映射**:MyBatis支持简单参数...
MyBatis支持动态SQL,这使得在XML映射文件中可以编写条件语句,如`if`, `choose`, `when`, `otherwise`, `where`, `trim`, `foreach`等标签。这大大提高了SQL语句的灵活性,可以根据业务需求构建复杂的查询条件。 ...
例如,使用`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签实现条件判断,以及`<foreach>`进行循环处理。 4. **Mapper接口与XML映射文件**: Mapper接口定义了业务方法,而XML映射文件则定义了对应的SQL语句。...
MyBatis 允许使用动态 SQL 来构造不同的 SQL 语句,文档中介绍了 if、choose、when、otherwise、trim、where、set 以及 foreach 标签的使用方法。动态 SQL 提供了巨大的灵活性,使得开发者可以根据运行时条件构建出...
MyBatis 的动态 SQL 功能非常强大,允许在 SQL 映射文件中使用 if、choose、when、otherwise、where、foreach 等元素,实现 SQL 语句的条件判断和循环构建,大大提高了 SQL 的灵活性。 六、MyBatis 与 Spring 集成 ...
- **foreach**:循环遍历集合中的元素。 ### Java API #### 6.1 Java API 使用指南 除了通过XML配置外,MyBatis还支持通过Java API来进行操作。主要涉及以下几个方面: - **SqlSessionFactory**:用于创建...
例如,`if`, `choose`, `when`, `otherwise`, `trim`, `where`, `foreach` 等标签可以灵活控制 SQL 的构建。 3. **参数映射**:MyBatis 自动将 Java 对象的属性值映射到 SQL 语句的参数,反之也将结果集映射为 Java...
- **<foreach>**:用于遍历集合,生成嵌套的SQL片段。 5. **缓存机制** - MyBatis提供了一级缓存(默认开启)和二级缓存(可配置),提高数据读取速度。 - **@CacheNamespace**:在Mapper接口上启用二级缓存。 ...
Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...
MyBatis-Plus 是 MyBatis 的一个扩展,它提供了许多便利的功能,如自动化 CRUD 操作,简化 SQL 编写,以及对复杂查询的支持。在处理大量数据时,批量插入(Batch Insert)是一种非常有效的方法,可以显著提高数据库...
例如,使用`<if>`、`<choose>`(`<when>`、`<otherwise>`)、`<foreach>`等标签。 4. **缓存机制**: MyBatis提供了一级缓存和二级缓存。一级缓存是SqlSession级别的,同一个SqlSession内的多次查询会复用之前的...
例如,通过${}表达式访问模型数据,使用<c:forEach>遍历集合,显示列表信息。同时,JSP还可以包含HTML、CSS和JavaScript,以实现丰富的交互效果。 总的来说,"springboot-mybatis-jsp整合"项目展示了如何在Spring ...
records.forEach(System.out::println); } ``` 在上述代码中,`QueryWrapper` 用于构建 SQL 查询条件,`Page` 用于存储分页参数。执行后,会先执行一个计数查询获取总记录数,然后执行实际的分页查询。 ## 四、...
userList.forEach(System.out::println); } } ``` 通过上述内容可以看出,Mybatis-Plus通过一系列强大的功能,为开发者提供了一个高效且便捷的数据库操作解决方案。无论是对于初学者还是有经验的开发者来说,...