`
yunshu321
  • 浏览: 11633 次
社区版块
存档分类
最新评论

ibatis2 中select中的动态查询

阅读更多

 

SELECT  
            LOGDATE   logdate,  
            <dynamic>  
                <isEqual property="isMember" compareValue="true" close=",">  
                           NAME  name  
                </isEqual>  
            </dynamic>  
                         AGE    age  
        FROM t  

 如题,在select中使用动态查询,isMember是Boolean类型的,结果就是isMember为true的时候还是选不到name这一列.

 

经过排查得知,生成的sql是正确的,但是resultMap的head是没有NAME  name这一列的.

ibatis的sql和resultMap是分开的,先根据sqlMap生成一个resultMap,然后把查询的结果再映射到resultMap中

虽然查询出来了结果,但是没有地方放数据.

具体为什么生成的resultMap没有那一列,带确认...

 

查出原因了,确认结果:

ibatis会缓存了第一次查过之后使用的resultMap,第二次查询的时候便不会考虑其他字段(即上面的NAME列).
改为<select id="***" parameterClass="***" resultClass="***" remapResults="true">
意思就是每次都会重新生成新的resultMap.

 

参考链接:http://www.iteye.com/topic/89424

分享到:
评论

相关推荐

    解决IBatis缓存动态字段问题

    通过在 `&lt;select&gt;` 标签中设置 `remapResults="true"`,可以有效地解决IBatis缓存动态字段带来的问题。这不仅避免了因缓存错误而导致的查询失败,还确保了程序能够灵活地处理动态表名和字段名。同时,需要注意的是,...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...

    ibatis_动态查询条件

    在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以根据参数的值来生成不同的 SQL 语句。 在 iBatis 中,参数可以是基本类型、字符串、集合等,它们可以通过 `#` symbols 来传递给 SQL 语句。...

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    Ibatis多表查询

    在多表查询中,Ibatis 提供了多种方式来处理复杂的关联查询,包括一对一、一对多、多对一和多对多等关系。在这个例子中,我们将探讨如何在 Ibatis 中实现一对多的关系查询。 首先,我们创建了两个表:`book` 和 `...

    操作数据库 iBATIS查询

    iBATIS推荐的写法是在SQL字符串中动态添加`%`,如下所示: ```xml &lt;select id="showOneStudentByName" parameterClass="String" resultMap="studentORM"&gt; SELECT * FROM t_stu WHERE s_name LIKE '%' || #name# ||...

    Ibatis查询Id列表.doc

    根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...

    ibatis动态SQL标签用法

    iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的...

    ibatis官方中文文档

    动态SQL是iBatis的一大特色,通过`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;set&gt;` 等标签,可以在XML中编写条件判断,构建灵活的SQL语句。 8. **缓存**: iBatis提供了本地缓存和二级缓存机制...

    ibatis多表查询

    在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...

    iBatis条件查询

    在描述中提到的"按条件查询",就是通过iBatis动态构建SQL语句来实现的。开发者可以在SQL Map中定义一个模板SQL,然后在Java代码中传入参数,iBatis会自动替换SQL中的占位符,生成实际的查询语句。这种方式既避免了硬...

    主子表查询ibatis

    本文将深入探讨如何在iBATIS中进行主子表查询,以及涉及到的相关技术如一对多关系、日志管理库log4j等。 首先,主子表查询是数据库设计中常见的场景,通常涉及到一个“父”表(主表)和一个或多个“子”表(从表)...

    ibatis 用HashMap解决resultClass映射

    在 ibatis 中,可以使用 `&lt;select&gt;` 元素来定义 SQL 查询,并通过 `resultClass` 属性指定结果集的类型。为了使查询结果能够适应变化的列名和列数,我们需要设置 `remapResults` 属性为 `true`。 ```xml &lt;!-- ...

    ibatis中iterate的例子

    在iBatis中,`&lt;iterate&gt;`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`&lt;iterate&gt;`标签的用法及其示例。 `&lt;iterate&gt;`标签的主要...

    ibatis2.0中文API

    同时,对于复杂的业务场景,iBATIS支持动态SQL,使得在映射文件中可以编写条件语句,根据对象状态动态生成执行的SQL片段。 最后,iBATIS 2.0的核心API主要包括SqlMapConfig.xml配置文件、SqlMapClient接口及其实现...

    ibatis3.0中in的用法

    在ibatis3.0中,为了实现动态SQL的功能,引入了`&lt;foreach&gt;`标签来处理集合数据。下面详细介绍`&lt;foreach&gt;`标签的属性及其用法: 1. **`item`**: 表示当前循环中的元素变量名。 2. **`index`**: 表示当前循环的索引...

    iBatis2.X入门附带完整项目

    在这里,你可以看到SQL语句被封装在`&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;` 和 `&lt;delete&gt;` 标签中,这些标签允许你编写动态SQL,实现参数化查询。例如,`&lt;select id="selectUser" parameterClass="int" resultClass=...

    ibatis3中使用jpa的方法进行查询

    在实际项目中,可以进一步研究如何将Ibatis3的动态SQL与JPA的查询表达式相结合,以满足复杂的查询需求。同时,注意处理好事务管理和性能优化,确保系统稳定高效运行。 总之,掌握Ibatis3与JPA的融合使用,将使你在...

    ibatis做连接查询 .doc

    注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...

Global site tag (gtag.js) - Google Analytics