问题描述:传入参数为数据库表明或者sql语句时,返回HashMap无法获取动态的字段显示
例如: <select id="searchPageInfo" resultClass="java.util.HashMap" parameterClass="java.lang.String" remapResults="true">
$sqlStr$
</select>
解决方法: 在 select 中加入一个属性值: remapResults="true"
***************************************************************************************************************************
官方说明:
节选(iBatis-sqlMaps-2)文档参考
Map类型的Result
Result Map也可以方便为一个Map(如HashMap或TreeMap)对象赋值。使用下面讨论的API(参见 executeQueryForList()),还可以得到Map对象的集合(即Map的List)。Map对象与Java Bean同样的方式映射,只是使用name属性值作为Map的键值,用它来索引相应的数据库字段值,而不是象Java Bean一样给属性赋值。例如,如果您要将Product对象的数据装入Map,可以这样做:
<resultMap id=”get-product-result” class=”java.util.HashMap”>
<result property=”id” column=”PRD_ID”/>
<result property=”code” column=”PRD_CODE”/>
<result property=”description” column=”PRD_DESCRIPTION”/>
<result property=”suggestedPrice” column=”PRD_SUGGESTED_PRICE”/>
</resultMap> http://www.ibatis.com Clinton Begin 著 刘涛(toleu@21cn.com) 译
开发指南 iBATIS SQL Maps Page 32 of 62
上面的例子会创建一个HashMap的实例并用Product的数据赋值。Property的name属性值(即“id”)作为HashMap的键值,而列值则作为HashMap中相应的值。
当然,可以把Map类型Result和隐式的Result Map一起使用。例如:
<statement id=”getProductCount” resultClass=”java.util.HashMap”>
select * from PRODUCT
</statement>
* 官方没有说明动态传入Sql时返回 HashMap 会遇到的问题
***************************************************************************************************************************
分享到:
相关推荐
通过上述介绍,我们可以看到使用 `HashMap` 解决 ibatis 中的动态列名和列数的问题是一种非常实用的方法。它不仅避免了为每种情况创建实体类的繁琐工作,还提高了代码的灵活性和可维护性。希望本文能够帮助你在实际...
为了提高开发效率和代码的可读性,iBATIS引入了一系列内置别名,用于简化配置文件中的全限定类名书写。本文将详细介绍iBATIS内置别名列表中所包含的各种类型及其具体含义。 #### 二、事务管理器别名 事务管理器是...
具体表现为:当第一次查询某个表时,IBatis会将查询结果中的字段名缓存起来;而在后续查询其他表时,如果这些表的字段与之前缓存的字段不一致,就会导致查询失败。 #### 问题分析 在IBatis框架中,`...
### 关于ibatis学习文档的关键知识点 #### 一、ibatis简介 - **定义**:ibatis是一个开源的持久层框架,它简化了Java应用程序与数据库之间的交互过程,但相较于Hibernate等其他ORM(对象关系映射)框架,ibatis更...
这些类型在iBatis中通常通过`HashMap`或特定的实体类进行封装后传递。 #### #与$的区别 在iBatis中编写SQL语句时,可以使用`#{}`和`${}`两种方式来插入参数。这两种方式的主要区别在于安全性和性能: - **#{}**: ...
上述日志配置用于记录执行SQL时的详细信息,有助于调试和追踪问题。 ##### 配置文件(sqlmap-config.xml) ```xml <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS....
在Java Web开发中,iBATIS(现在被称为MyBatis)是一个流行的持久层框架,它允许开发者将SQL语句直接映射到Java方法,提供了一种灵活的数据访问接口。分页是Web应用中常见的需求,它能帮助用户更有效地浏览大量数据...
- `SqlMapFactoryBean` 是 Spring 中用于读取 iBATIS 配置文件并创建 `SqlMap` 的工具类。 - 通过这个类,可以在 Spring 容器中配置 iBATIS 相关组件。 - **关键属性:** - **`configLocation`**: 指定 iBATIS ...
在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。本文将详细介绍如何在ibatis中实现多参数...
### ibatis高级特性详解 ...本文详细介绍了 ibatis 中的一些高级特性,包括数据关联、延迟加载、动态映射以及事务管理等内容。通过这些特性的使用,开发者能够更高效地处理数据库操作,并提高应用程序的性能和灵活性。
在本文中,我们将深入探讨如何使用WebWork和iBatis框架来实现文件上传的功能。WebWork是一个基于Action的MVC(Model-View-Controller)框架,而iBatis则是一个SQL映射框架,用于简化Java应用程序中的数据库操作。...
### Ibatis应用实例详解 #### 一、Ibatis配置与数据库连接 在开始Ibatis的应用之前,我们需要确保Ibatis能够正确地与数据库建立连接。这一步骤主要涉及到两个文件的配置:`SqlMap.properties` 和 `SqlMapConfig....
在Ibatis中,可以通过XML映射文件来定义存储过程的调用。下面是一个具体的例子: ```xml <sqlMap namespace="PROCEDURE"> <!-- 存储过程参数映射 --> <!-- 调用存储过程 --> <![CDATA[ {call ...
当SQL Map接口只能接受一个参数,但我们需要传递多个参数时,我们可以将这些参数封装到一个HashMap中。例如,下面的XML配置展示了如何通过HashMap来设置查询条件: ```xml <![CDATA[ select * from test where ...
Ibatis,原名SqlMap,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Ibatis可以使用简单的XML或注解进行配置和原始映射,将接口和...
- **延迟加载**:ibatis支持懒加载,即只有当真正需要某个关联对象时才会加载,这对于提高应用性能非常有帮助。 - **动态映射**:ibatis提供了强大的动态SQL支持,允许开发者根据条件动态生成SQL语句。 - **事务...
本文旨在介绍如何在Spring框架中集成使用iBATIS数据库层。数据库编程涉及到数据库连接、连接池管理、SQL语句执行、输入输出处理以及事务管理等多个方面。Java的JDBC API尽管功能强大,但在实际应用中显得较为底层且...
这里通过静态代码块初始化了`SqlMapClient`对象,这是ibatis的核心组件之一,负责执行映射文件中定义的各种操作。 1. **获取配置文件**:通过`Resources.getResourceAsReader("SqlMapConfig.xml")`获取配置文件的...