我有一个针对 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 的精度损失?