`

ibatis 使用 in子句

阅读更多

因为in的性能问题,平常不怎么用。今天特殊需求,在ibatis中需要构建in子句

首先想到直接通过拼接字符串:String states=A,B,C,D,

在ibatis中where states in (#states#) ,在states只有单个字符时运行正常,有了逗号iabtis解析出错。

 

查询资料,问题解决:

<isNotNull prepend="AND" property="statusList"> 
         A.Delivery_Status_ID in
     <iterate property="statusList" conjunction="," open="(" close=")" >
         #statusList[].statusCode#
     </iterate>
   </isNotNull>

分享到:
评论

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    - 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis的集成: - Struts作为MVC框架,主要负责视图与控制器的交互。在项目中,`...

    一个程序员的自省 iBATIS In Action:什么是iBATIS(一)

    输入参数常用于WHERE子句,而输出则是SELECT子句中的列。通过XML配置文件,开发者可以明确指定SQL语句的参数和结果集如何映射到对象。例如,一个简单的XML描述文件可以定义一个SELECT查询,接收一个整型参数并返回...

    java~springboot~ibatis数组in查询的实现方法

    现在,让我们看看如何使用iBatis实现数组in查询。在iBatis的XML文件中,我们可以使用foreach语句来遍历数组,例如: ```xml update customer_info set status=#{status},appoint_time=#{appointTime} where ...

    ibatis拼接字符串

    如果 `ids` 数组包含多个元素,则使用 `StringBuilder` 的 `append` 方法添加 `IN` 子句。循环遍历 `ids` 数组,将每个 ID 添加到 SQL 语句中,并正确处理分隔符(逗号)和括号的添加。 #### 3. 处理其他过滤条件 ...

    常用ibatis配置

    在文档中,展示了如何使用标签来生成IN子句,以便于将一个集合中的值动态地插入到SQL语句中。 7. 截止日期:在业务逻辑中,常常需要查询截止到某个特定日期或时间点的数据。iBatis配置允许使用动态SQL标签来根据...

    ibatis日期格式.doc

    在iBatis中,实现批量删除可以通过动态SQL,使用`IN`操作符结合`&lt;foreach&gt;`标签,将选中的ID集合传入SQL语句中。 2. **小组审核管理** - **问题1**: 建议优化`search`方法,使用联合查询替代多条SQL语句。iBatis...

    ibatis出错调试心得

    例如,可以使用`&lt;isNotEmpty&gt;`元素来根据条件添加`ORDER BY`子句。 ```xml ORDER BY #orderField# ``` - **自定义SQL片段**:通过`&lt;dynamic&gt;`标签,可以创建更为灵活的SQL片段。 ```xml $sql$ ...

    iBATIS实战

    3.4.1 在独立应用程序中使用iBATIS 50 3.4.2 在Web应用程序中使用iBATIS 50 3.5 iBATIS和JDBC 51 3.5.1 释放JDBC资源 51 3.5.2 SQL注入 51 3.5.3 降低复杂度 52 3.6 配置iBATIS(续) 53 3.6.1 SQL Map配置文件 54 ...

    ibatis快速入门

    例如,你可以根据条件动态地生成WHERE子句,或者使用标签来遍历集合并生成IN语句。这对于处理复杂的数据筛选和更新需求非常有用。 其次,"ibatis的入门"PDF文件可能包含了一步步引导你从零开始学习Ibatis的教程。...

    Ibatis常用sql语句

    `#status#`表示新状态,`actionIds`为一个列表,通过`iterate`标签迭代列表中的元素,形成IN子句,实现批量更新功能。 #### 5. 查询模块下的动作标识:查询特定模块下的所有动作标识 ```xml select moduleId, ...

    Ibatis查询Id列表.doc

    文档标题与描述均为“Ibatis查询Id列表.doc”,这表明文档内容主要聚焦于如何使用Ibatis查询ID列表。ID列表在实际应用中通常用于获取一系列记录的主键值,以便后续进行更复杂的操作或查询。 ### 三、查询Id列表的...

    动态ibatis查询语句配置

    这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解Ibatis动态SQL的基本概念。在Ibatis的XML映射文件中,我们可以通过条件标签来构建动态SQL。这些标签...

    iBATIS动态标签

    通过这些标签,开发者可以在iBATIS的SQL映射文件中实现灵活的动态SQL,如示例所示,可以根据`Account`对象的`username`属性是否存在和其值来决定`WHERE`子句的内容,从而实现更高效和可维护的数据库查询。

    ibatis list

    这在构造SQL语句中的`IN`子句时特别有用,例如`WHERE USER_ID IN (value1, value2, ...)`。 #### `open`和`close`属性 这两个属性分别定义了迭代结果的开始和结束符号,常用于括号的开闭,如`(`和`)`,以确保SQL...

    ibatis批处理

    在iBatis配置文件中,使用`&lt;iterate&gt;`标签遍历`appDevIds`数组,形成IN条件语句。 **2.2 情况二:多个输入参数循环次数是对称的** 当输入参数的循环次数与操作的次数相匹配时,可以创建一个HashMap,将参数名作为...

    mysql,jdbc详解,与ibatis对比。批量查询,分页处理。

    例如,当需要从表中检索数千条记录时,可以使用`IN`子句或循环处理等方式实现。 - **分页处理**: 在处理大量数据时非常有用,尤其是对于Web应用中的数据展示。常用的分页技术包括使用`LIMIT`和`OFFSET`关键字来限制...

    ibatis 处理数组

    例如,如果你有一个用户ID的数组,你可以通过`foreach`标签来遍历并构建SQL的`IN`子句。以下是一个例子: ```xml SELECT * FROM users WHERE id IN (" separator="," close=")"&gt; #{item} ``` 这里的`...

    ibatis批量删除的方法.docx

    ### 第一种方法:基于in子句的批量删除 批量删除的第一种方式是利用`in`子句,通过传入一个包含多个ID的字符串来删除对应ID的数据。例如: ```sql DELETE FROM w_user WHERE user_id IN ($ids: String$) ``` ...

    ibatis学习文档

    `open`属性定义了`IN`子句的开始括号,`close`属性定义了结束括号,而`conjunction`属性定义了元素间的分隔符,通常是逗号。`#[]#`中的`[]`是占位符,Ibatis会自动替换为数组中的每个元素。例如,如果你的ID数组为`...

Global site tag (gtag.js) - Google Analytics