私の問題は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に感謝します)