使用 SUM 时,我在将 MySQL 查询的结果转换为 Java 类时遇到了一些问题。
在 MySQL 中执行简单 SUM 时
SELECT SUM(price) FROM cakes WHERE ingredient = 'chocolate';
作为一个整数,price
看起来SUM
有时返回一个字符串,有时返回一个整数,具体取决于 JDBC 驱动程序的版本。
显然,服务器确实告诉 JDBC 驱动程序的结果SUM
是一个字符串,而 JDBC 驱动程序有时会“方便地”将其转换为整数。(见马克马修斯的解释)。
Java 代码使用一些BeanInfo和Introspection自动用查询结果填充(列表)bean。但是,如果部署应用程序的服务器之间的数据类型不同,这显然是行不通的。
我不在乎我得到的是字符串还是整数,但我希望始终拥有相同的数据类型,或者至少提前知道我将获得哪种数据类型。
有什么方法可以知道 MySQLSUM
从 Java 代码中返回哪种数据类型?或者有谁知道一些更好的方法来处理这个问题?