ibatis中的sql语句处理in()的方法:
<select id="totalCustomSum" parameterClass="customReport" resultClass="customReport">
select sg.client_group_id as clientId, client_group_name as clientName,count(u.clientuser_id) as currentCount
From sys_client_group sg left join clientinfo_group g on sg.client_group_id = g.Client_group_id
left join user_info_msg u on u.clientuser_id= g.clientuser_id
<isNotEmpty property="startDate">
<![CDATA[ and u.createtime >= #startDate#]]>
</isNotEmpty>
<isNotEmpty property="endDate">
<![CDATA[ and u.createtime <= #endDate#]]>
</isNotEmpty>
<isNotEmpty property="userIdList">
and u.user_id in
<iterate property="userIdList" conjunction="," close=")" open="(" >
#userIdList[]#
</iterate>
</isNotEmpty>
group by sg.client_group_id
</select>
或者是:
<select id="totalCustomSum" parameterClass="customReport" resultClass="customReport">
select sg.client_group_id as clientId, client_group_name as clientName,count(u.clientuser_id) as currentCount
From sys_client_group sg left join clientinfo_group g on sg.client_group_id = g.Client_group_id
left join user_info_msg u on u.clientuser_id= g.clientuser_id
<isNotEmpty property="startDate">
<![CDATA[ and u.createtime >= #startDate#]]>
</isNotEmpty>
<isNotEmpty property="endDate">
<![CDATA[ and u.createtime <= #endDate#]]>
</isNotEmpty>
<isNotEmpty property="user_id">
and u.user_id in($user_id$)
</isNotEmpty>
group by sg.client_group_id
</select>
其中第二种方法注意 in()里面取值的符号是“$”而不是通常用的“#”
分享到:
相关推荐
### ibatis3.0中`in`的用法详解 #### 一、引言 在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用...
在Java Web开发中,iBatis(现在称为MyBatis)是一个流行的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作更加便捷。在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、...
《iBATIS in Action》是一本专注于讲解iBATIS框架使用的专业书籍,它为开发者提供了深入浅出的指导,帮助他们有效地在项目中应用这一强大的持久层解决方案。iBATIS,一个由Apache软件基金会维护的开源项目,是Java...
本书的配书代码通常会包含一系列示例项目,涵盖iBatis和MyBatis的基础用法,例如CRUD操作、复杂查询、事务管理、结果集自动映射等。通过这些代码,读者可以直观地了解如何在实际项目中应用这两个框架。此外,书中还...
通过阅读《iBATIS in Action》,开发者不仅可以掌握iBATIS的基本用法,还能了解到如何在实际项目中进行高效的数据访问设计,提升项目的质量和可维护性。这本书对于那些寻求轻量级数据访问解决方案的Java开发者来说,...
【iBATIS简介】 iBATIS 是一个Java语言开发的持久层框架,它主要解决的是数据...这个简单的示例展示了iBATIS的基础用法,实际项目中,iBATIS还支持动态SQL、事务管理、结果映射等功能,能够满足复杂的应用场景需求。
"ibatis in action" 暗示这可能是一本关于如何有效使用iBATIS的实战指南,通常这类书籍会深入讲解框架的各个方面,包括安装配置、基本概念、映射文件、事务管理、动态SQL以及最佳实践等。 标签 "教程" 指出这是一个...
对于初学者,本书将帮助他们快速理解iBATIS的基本概念和用法,并通过实际案例提升其在项目中的应用能力。而对于有一定经验的开发者,本书将提供更深入的见解和最佳实践,帮助他们在项目中更好地利用iBATIS的优势。 ...
1. **阅读《iBATIS in Action》**: 通过这本书,你可以系统地了解iBATIS的全貌,包括其设计哲学、核心组件、如何集成到项目中以及如何优化使用。 2. **研究XML映射文件**: 学习如何编写和配置SQL映射文件,掌握动态...
通过这个例子,你可以了解到iBatis的基本用法,包括插入、查询、更新和删除数据。 `ibatis 延迟加载、对多关系、缓存的测试.mht`涉及到iBatis的高级特性。延迟加载(Lazy Loading)是iBatis的一种优化策略,只在...
标题中提到的“常用ibatis配置”指的是在使用iBatis这一数据持久层框架中,常见的配置用法和技术点。iBatis(现称为MyBatis)是一个流行的Java持久层框架,它通过使用XML或注解的方式,将SQL语句与对象进行映射,...
Ibatis,全称为MyBatis,是一个...通过阅读提供的文档和教程,结合实际的代码练习,你应该能够快速掌握Ibatis的基本用法,并能将其应用到实际项目中。对于Flex的集成,这将帮助你进一步拓宽技术栈,提升你的开发能力。
- 如果出现`WRITEABLE property named 'xxx' not found in class`这类错误,通常是由于`resultMap`中指定的属性名与JavaBean的属性名不匹配导致的。 #### 2. **调试技巧** - **日志记录**:启用iBatis的日志功能...
在iBatis配置文件中,使用`<iterate>`标签遍历`appDevIds`数组,形成IN条件语句。 **2.2 情况二:多个输入参数循环次数是对称的** 当输入参数的循环次数与操作的次数相匹配时,可以创建一个HashMap,将参数名作为...
【描述】"iBATIS in Action 整理,各种hello" 暗示了这个压缩包包含了一系列逐步引导的示例,这些示例可能涵盖iBATIS的基本用法,包括如何创建第一个“Hello World”程序,以及在不同场景下的应用实践。 【标签】...
根据给定的文件信息,以下是对“Ibatis常用SQL语句”的详细解析,涵盖了一系列Ibatis在数据操作中的应用实例。 ### Ibatis简介 Ibatis是一个支持普通SQL查询、...掌握这些基本用法对于提升Ibatis开发效率至关重要。
在本教程中,我们将深入探讨Ibatis 3.0框架中的增、删、改、查操作,这是关于Ibatis 3.0系列教程的第三部分。...通过学习这一部分,你应能熟练掌握在Ibatis中进行数据的增删改查操作,并理解其背后的原理和用法。