0

我有一个针对 MySql 数据库运行的 Spring 应用程序。我有一个销售表,如:

+-------------------+------------------------------+------+-----+---------+-------+
| Field             | Type                         | Null | Key | Default | Extra |
+-------------------+------------------------------+------+-----+---------+-------+
| Price             | decimal(19,4)                | NO   |     | NULL    |       |
| ItemId            | int(10) unsigned             | NO   |     | NULL    |       |
+-------------------+------------------------------+------+-----+---------+-------+

在我的春季课程中,我有以下内容:

long price = getSimpleJdbcTemplate().queryForLong("SELECT price FROM sales WHERE itemID = :itemID", params);
logger.info("price: " + price + ");

但是,这将返回 1 的价格,即使此查询直接在数据库上返回0.8500也是如此。如何避免从数据库中的小数到代码中的 long 的精度损失?

4

1 回答 1

5

long不支持小数位,因为它是整数类型。你试过queryForObject(sql, BigDecimal.class, params)吗?

于 2010-01-12T00:18:08.457 回答