开源中国社区
找到您想要的开源软件,分享和交流 开源软件 新闻 讨论 博客

上一话题 | 下一话题 发现并解决了DbUtils项目的一个问题

作 者话 题 正 文
红薯

广东 广州

加入时间:2008-08-31
最近登录:6小时前

0人关注此话题, 我要关注(收藏)(?) 回复此话题 1楼 发表于 2009-01-06 11:28 (1年前), 1回 /323阅, 最后回复:1年前

今天在写程序的时候发现了 dbutils 的一个这样的问题,由于 dbutils 在做表到对象的映射时要求列名和对象的属性名必须一致,例如列名是 userid ,那么属性名也必须是 userid ,但很多时候,我们在编写类的时候,希望能改个属性名,例如是 user 而不是 userid ,这个时候我们这样来写SQL 语句:

SELECT userid AS user FROM osc_users

然后你会发现根本无法读取到 userid 字段的值,找到了 dbutils 的源码发现它用的是 getColumnName 来获取表的列名,而这个方法对 SQL 语句通过 AS 来修改列名的就无效,在JDK文档中有这么一个方法:getColumnLabel ,该方法在 JDK文档中的描述如下:

Gets the designated column's suggested title for use in printouts and displays. The suggested title is usually specified by the SQL AS clause. If a SQL AS is not specified, the value returned from getColumnLabel will be the same as the value returned by the getColumnName method.

因此我们需要将 dbutils 中所有用到 getColumnName 的地方都改成 getColumnLabel 即可。

本人已经修改好并打包,下载地址是:http://www.oschina.net/p/dbutils

返回顶部 回复此话题 |
hymn

北京 东城

加入时间:2008-09-16
最近登录:22天前

2楼: Re: 发现并解决了DbUtils项目的一个问题     发表时间: 2009-01-06 13:35

这个不错,我在用

返回顶部 此回帖顶部 | 回复此话题
     爱护开源中国,请您和谐评论,谢谢!