【发布时间】:2008-11-27 09:14:37
【问题描述】:
在使用 SUM 时,我在将 MySQL 查询的结果转换为 Java 类时遇到了一点问题。
在 MySQL 中执行简单 SUM 时
SELECT SUM(price) FROM cakes WHERE ingredient = 'chocolate';
price 是一个整数,看起来SUM 有时会返回一个字符串,有时会返回一个整数,具体取决于 JDBC 驱动程序的版本。
显然,服务器确实告诉 JDBC 驱动程序 SUM 的结果是一个字符串,而 JDBC 驱动程序有时会“方便地”将其转换为整数。 (见Marc Matthews' explanation)。
Java 代码使用一些BeanInfo 和Introspection 来自动用查询结果填充(列表)bean。但是,如果部署应用程序的服务器之间的数据类型不同,这显然是行不通的。
我不在乎我得到的是字符串还是整数,但我希望始终拥有相同的数据类型,或者至少提前知道我将获得哪种数据类型。
有没有办法知道 MySQL SUM 从 Java 代码中返回哪种数据类型?或者有谁知道更好的方法来解决这个问题?
【问题讨论】:
标签: java mysql sum return-type