2016-02-29 39 views
1

我有一个数据库(MySQL 5.6,如果它很重要),我想存储通常但不总是整数的数值。现在我有一个DECIMAL(10, 3)列,似乎工作得很好。我正在寻找的是我知道在本地JDBC不存在的方法,但会是这样的:SQL DECIMAL到Java编号

public Number ResultSet.getNumber() 

这将返回我Long(或者甚至Integer)如果基础SQL值实际上是一个整数,否则就是一个Double。有什么方法可以从JDBC中的SQL DECIMAL列获得等效的结果吗?

回答

3

为SQL decimal和numeric值的推荐的Java映射的BigDecimal:

ResultSet.getBigDecimal() 
+0

有趣。我会给你一个镜头。 – Dan

3

您可以从表中获取的十进制值,并将其转换为双为:

BigDecimal res = ResultSet.getBigDecimal(); 
+0

你为什么把它作为BigDecimal,然后你把它转换为双?最终直接使用ResultSet.getDouble()。 –

+0

正确!只是将其转化为双重价值,我展示了它。 – FallAndLearn