3

我的问题是,当我将我的保存BigDecimal在数据库中(例如:22.21)然后我们从数据库中取回它时BigDecimal,小数点不再存在(例如:22)。

我有以下查询

String statement ="INSERT INTO " + TABLE_NAME + " (amount) VALUES( ? )";
PreparedStatement stmt = DataBase.getInstance().prepareStatement(statement);
//set data
stmt.setBigDecimal(1, payment.getAmount());
// ...

然后我以这种方式从数据库中取回金额:

String q = "SELECT * FROM " + TABLE_NAME + " WHERE project=" + project.getId();
//...
payment.setAmount(rs.getBigDecimal("amount")); // <-- decimal is lost

我的数据库中的金额是:

amount NUMERIC NOT NULL

回答:

MySQL 类型应该是DECIMAL(x,y)而不是NUMERIC.

(这解决了我的问题,谢谢安德烈)

4

0 回答 0