-
ibatis动态查找出错5
<select id="getByTypeIDs" resultMap="result">
SELECT DET_NAME FROM TYPE_DEATAIL
<dynamic prepend="where">
<iterate property="detTypeId" open="(" close=")" conjunction="or">
DET_TYPE_ID=#detTypeId[]#
</iterate>
</dynamic>
</select>
public List getByTypeIDs(int detTypeId[])throws SQLException{
return sqlMapper.queryForList("getByTypeIDs",detTypeId);
}
2008-08-08 14:55:40,937 DEBUG [java.sql.Connection] - {conn-100000} Connection
2008-08-08 14:55:40,937 DEBUG [com.ibatis.common.jdbc.SimpleDataSource] - Returned connection 1623405 to pool.
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:156)
... 7 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at com.ibatis.common.beans.BaseProbe.getIndexedProperty(BaseProbe.java:50)
... 15 more
2008年8月08日 15:02
2个答案 按时间排序 按投票排序
-
采纳的答案
使用的是默认参数 记不太清怎么用了
用<select id="getByTypeIDs" resultMap="result"> SELECT DET_NAME FROM TYPE_DEATAIL <dynamic prepend="where"> <iterate property="value" open="(" close=")" conjunction="or"> DET_TYPE_ID=#value[]# </iterate> </dynamic> </select>
或
<select id="getByTypeIDs" resultMap="result"> SELECT DET_NAME FROM TYPE_DEATAIL <dynamic prepend="where"> <iterate property="" open="(" close=")" conjunction="or"> DET_TYPE_ID=#value[]# </iterate> </dynamic> </select>
试试
2008年8月09日 08:37
-
你的detTypeId 肯定是传了一个空进去, 或者是空的数组进去.
你要先判断是 isNotNull, 再判断isNotEmpty, 再使用iterator2008年8月08日 15:50
相关推荐
iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,...
标题 "ibatis UPDATE 动态XML与insert" 涉及到的是MyBatis框架中对数据库数据进行更新(UPDATE)和插入(INSERT)操作的动态XML配置方式。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
ibatis动态多条件组合查询 实例 说明
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...
转ibatis动态sql - phoebus0501 - 博客园.mht
- **动态SQL元素**:iBatis支持使用动态SQL来构建复杂的查询条件。例如,可以使用`<isNotEmpty>`元素来根据条件添加`ORDER BY`子句。 ```xml ORDER BY #orderField# ``` - **自定义SQL片段**:通过`...
在IT领域的数据库操作中,IBATIS框架提供了一种强大且灵活的方式来进行SQL查询,尤其在动态查询方面表现得尤为突出。本文将深入探讨IBATIS动态查询语句的运用,解析其背后的逻辑与机制,以及如何利用这些特性来增强...
### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...
3. 动态运用:在实际项目中,Freemarker与iBatis常被结合使用,例如,iBatis负责从数据库获取数据,然后将这些数据传递给Freemarker,由Freemarker生成动态网页。这种方式可以实现MVC架构中的View层与Controller/...
iBATIS,作为一款优秀的持久层框架,提供了强大的动态SQL功能,解决了直接使用JDBC时编写复杂动态SQL的难题。本文将深入探讨iBATIS动态注入的相关知识点。 iBATIS动态SQL主要通过XML映射文件中的特定标签实现,允许...
iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `<dynamic>` 元素来实现的,该元素可以...
### iBatis中的动态SQL语句详解 #### 引言 在进行数据库操作时,我们经常需要根据不同的条件构建不同的SQL语句。这种需求在实际开发中极为常见,尤其是在处理复杂的查询逻辑时。iBatis(现在通常被称为MyBatis)...
在SQL映射文件中,可以使用动态SQL来处理复杂的查询条件,如`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签。 2. 数据库代码规范: - 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有...
本篇将深入探讨Ibatis3在Oracle数据库环境下的具体应用实例,涵盖CRUD(创建、读取、更新、删除)操作以及动态SQL的使用。 一、Ibatis3简介 Ibatis3是MyBatis的前身,它放弃了Hibernate的全对象关系映射,转而采用...
4. **动态SQL**:Ibatis的动态SQL功能非常强大,可以在XML映射文件中通过`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`等标签实现条件判断,使得SQL语句更加灵活。 5. **参数映射**:Ibatis支持多种方式...
iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...
IBATIS动态sql - 紫晶幻治 - 51CTO技术博客.mht
iBatis的动态SQL功能是其一大亮点,它允许在映射文件中编写条件语句,大大提高了SQL的灵活性。这部分源码主要在`org.apache.ibatis.builder.xml.XMLMapperBuilder`和`org.apache.ibatis.scripting.xmltags....
### ibatis的动态查询知识点详解 #### 一、模糊查询 **知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` ...