我的问题是,当我将我的保存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
.
(这解决了我的问题,谢谢安德烈)