`

ibatis中动态查询返回字段返回用resultClass="java.util.HashMap" 的问题

阅读更多

org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred in jndi:/localhost/studen/WEB-INF/app-config/query/sqlmap/Test.xml. 
--- The error occurred while applying a result map. 
--- Check the QueryReport_QueryBucketTest.SELECT_QUERYUBUCKETTESTDETAIL_CN-AutoResultMap. 
--- Check the result mapping for the 'LPV_CNT_1' property. 
--- Cause: java.sql.SQLException: 列名无效

 

 

    <select id="SELECT_QUERYUBUCKETTESTDETAIL_CN" resultClass="java.util.HashMap" parameterClass="java.util.HashMap" 
       select yyyymmdd,
       <isNotEmpty prepend=" " property="user_type">
             <isEqual property="user_type" compareValue="1">
                cookie_cnt as  cookie_cnt_1
             </isEqual>
              <isEqual property="user_type" compareValue="2">
                cookie_cnt as  cookie_cnt_2
             </isEqual>
              <isEqual property="user_type" compareValue="3">
                cookie_cnt as  cookie_cnt_3
             </isEqual>
      </isNotEmpty>

 

当user_type=1查询的时候列名是cookie_cnt_1, 如果第一次查询user_type=1,那么第二次查询user_type=2就会报这个错,因为ibatis保留列名为第一次查询时候的列名cookie_cnt_1,ibatis可以设置一个参数remapResults="true",每次查询都重新更新列名,

 

<select id="SELECT_QUERYUBUCKETTESTDETAIL_CN" resultClass="java.util.HashMap" parameterClass="java.util.HashMap"  remapResults="true"

 

0
0
分享到:
评论

相关推荐

    ibatis 用HashMap解决resultClass映射

    `resultClass` 设置为 `"java.util.HashMap"` 表示查询结果将以 `HashMap` 形式返回。 #### 4. Dao 层实现 接下来,在 Dao 层实现类中,我们可以通过调用 `queryForList` 方法来执行查询,并获取结果集。 ```java...

    解决IBatis缓存动态字段问题

    ### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...

    IBATIS调用存储过程

    在IT行业中,数据库操作是必不可少的一部分,而使用ORM框架如iBATIS进行数据访问则能够简化这一过程。本文将详细探讨如何使用iBATIS调用Oracle存储过程,并处理返回的Cursor结果集。 首先,理解iBATIS调用存储过程...

    ibatis的多参数查询.doc

    ### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    在使用iBATIS(现已被MyBatis取代)进行数据库操作时,我们常常需要传递参数到SQL语句中。在iBATIS中,有两种主要的方式来处理这些参数:使用`$`和`#`。这两种方式在不同的场景下有不同的效果。 首先,让我们来看看...

    ibatis高级特性

    ### ibatis高级特性详解 ...本文详细介绍了 ibatis 中的一些高级特性,包括数据关联、延迟加载、动态映射以及事务管理等内容。通过这些特性的使用,开发者能够更高效地处理数据库操作,并提高应用程序的性能和灵活性。

    Spring and iBATIS

    本文旨在介绍如何在Spring框架中集成使用iBATIS数据库层。数据库编程涉及到数据库连接、连接池管理、SQL语句执行、输入输出处理以及事务管理等多个方面。Java的JDBC API尽管功能强大,但在实际应用中显得较为底层且...

Global site tag (gtag.js) - Google Analytics