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ます。

(これで私の問題は解決しました、Andriyに感謝します)

4

0 に答える 0