dbutils 别名问题,dbutils MapHandler、MapListHandler 别名解决办法.
最近在赶一个项目,刚好用了apache 的 dbuils 做持久层(hibernate太笨重了) ,这个dbutisl比较轻便。在使用过程中用到了多表查询数据,返回的数据是一个map,发现了dbutisl 的一个不太合理的地方(也不能算是bug),就是多表查询返回map时MapListHandler 不能使用别名,只要是设计别名的都查询不到数据,而通过工具单独运行sql查询结果是没问题的,查看了 dbutisl 的源码发现了原因:BasicRowProcessor 类的 tomap 方法不合适得改改。见截图;
即:将 result.put(rsmd.getColumnName(i), rs.getObject(i));
改为:result.put(rsmd.getColumnLabel(i), rs.getObject(i));
就可以使用别名了。
同时上传了我改后的jar文件,我是在jdk1.5的环境编译的jar
备注:我用的dbutils 的版本是 1.4(最新)
- 大小: 75.8 KB
分享到:
相关推荐
【dbUtils常用结果集[BeanHandler]、[BeanListHandler]、[MapHandler]、[MapListHandler,Object>]查询结果转Json串】
DBUtils 是一个非常重要的 Python 模块,专为数据库连接设计,它在 Python 的数据库应用开发中扮演着不可或缺的角色。这个模块主要目的是提供一个稳定、健壮的接口,用于管理和操作数据库连接,使得开发者能够更方便...
4. 结果集处理:DBUtils提供了BeanHandler、MapHandler等处理结果集的工具,可以将结果集直接转换为Java对象,简化了数据绑定的过程。 5. 避免资源泄露:DBUtils自动关闭数据库连接、Statement和ResultSet,避免了...
MapHandler :将ResultSet中第一行的数据存成Map映射 MapListHandler :将ResultSet中所有的数据存成List List中存放的是Map ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object org apache ...
commons-dbutils包是Apache...MapHandler :将ResultSet中第一行的数据存成Map MapListHandler :将ResultSet中所有的数据存成List<Map,Object>> ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
DbUtils提供了一些预定义的实现,如ArrayListHandler(将结果集转换为List对象)、BeanHandler(将结果集映射到Java Bean)、MapHandler(将结果集映射到Map对象)等,可以根据需求选择合适的Handler。 3. **...
Python的DBUtils是一个非常实用的库,主要用于增强Python标准库中的`DB-API 2.0`接口,提供了线程安全性和连接池管理等功能。DBUtils是基于PEP 249设计的,它使得数据库连接的管理和维护变得更加简单,尤其在多线程...
DBUtils提供了一系列预定义的`ResultSetHandler`实现,如`ArrayHandler`、`ArrayListHandler`、`BeanHandler`、`BeanListHandler`、`MapHandler`、`MapListHandler`和`ScalarHandler`,以满足不同的数据转换需求。...
* `MapHandler`:将第一行数据转换为Map映射。 * `MapListHandler`:将所有数据转换为Map列表,每个Map代表一行。 * `ScalarHandler`:获取单个结果,将某一列的数据转换为Object。 * 结果集包装器: * `...
DBUtils提供了一些预定义的实现,如ArrayListHandler将结果集转换为ArrayList,BeanHandler将每一行数据映射到一个Java Bean对象,MapHandler则将每一行数据转换为Map。 3. **BasicRowProcessor**和**...
DBUtils提供了一些预定义的实现,如`ArrayHandler`、`BeanHandler`和`MapHandler`,可以直接将结果转换为数组、JavaBean或Map对象。 3. **TransactionManager**:DBUtils提供了一种简单的事务管理机制,允许在多条...
- 其他如 `BeanHandler`, `ColumnListHandler`, `KeyedHandler`, `MapHandler`, `ScalarHandler` 等,提供了多种转换策略以满足不同的需求。 Dbutils 的优势在于: 1. **减少代码量**:通过提供预定义的 Handler,...
而`ResultSetHandler` 接口则定义了如何处理查询结果集,提供了多种预定义的实现,如`ArrayListHandler`、`BeanHandler` 和 `MapHandler`,可以根据需求将结果集转换为列表、Java对象或Map。 3. **异常处理**:`...
3. **结果集处理**:DBUtils提供了BeanHandler、ArrayHandler、MapHandler等处理类,可以方便地将查询结果转换为Java对象,如JavaBean、数组或Map,简化了数据绑定的过程。 4. **事务管理**:DBUtils提供了简单易用...
Dbutils 是 Apache Commons DbUtils 的简称,它是一个用于简化 Java 数据库编程的开源库。Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库...
dbutils 提供了一些预定义的实现,如 `ArrayListHandler`(将结果集转换为 ArrayList),`BeanHandler`(将结果行映射到 Java Bean 对象),`MapHandler`(将结果行映射到 Map)等。 - **ConnectionPool**: dbutils...
`commons-dbutils.jar.rar` 是一个包含Apache Commons DBUtils库的不同版本的压缩文件,主要用于Java应用程序中的数据库操作。DBUtils是一个实用程序库,它简化了JDBC(Java Database Connectivity)的使用,提供了...
《Apache Commons DBUtils详解及其在Java数据库操作中的应用》 Apache Commons DBUtils是Apache软件基金会开发的一个开源项目,它提供了一套简洁、高效且实用的工具类,用于简化Java应用程序中的数据库操作。这个...
`dbutils` 提供了多种预定义的实现,如`ArrayListHandler`(将结果集转换为列表)、`BeanHandler`(将结果集映射到Java Bean对象)和`MapHandler`(将结果集映射到Map对象)。 3. **异常处理**: `dbutils` 使用`...
常见的实现有`ArrayHandler`, `BeanHandler`, `ListHandler`, `MapHandler`等,它们将结果集转换为各种数据结构。 - **ConnectionProvider**: 负责提供数据库连接,可以自定义实现,例如使用连接池。 2. **使用...