我已经在postgresql数据库中定义了一个列作为钱类型,让我们说总计。 我正在使用JAVA插入数据JSpinner使用双模型,插入完成得非常完美,但是当我想要选择存储在总列中的数据时
result.getBigDecimal("total");
我收到了错误;
org.postgresql.util.PSQLException: Mauvaise valeur pour le type BigDecimal : 0,00 €
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toBigDecimal(AbstractJdbc2ResultSet.java:3012)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:2400)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:355)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:361)
at DAO.BonDachatDAO.findAll(BonDachatDAO.java:42)
at VIEW.BonDeAchatUi.initComponents(BonDeAchatUi.java:255)
at VIEW.BonDeAchatUi.<init>(BonDeAchatUi.java:123)
at VIEW.BonDeAchatUi$3.run(BonDeAchatUi.java:483)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
答案 0 :(得分:2)
如MONEY documentation page所述,如果要访问其数值,则需要在查询中强制转换输出值,如下所示:
select total::numeric, ...
但是,有一些与金钱类型相关的问题,最好只使用普通数字来存储金额。
答案 1 :(得分:0)
我认为问题是BigDecimal不能使用这样的逗号。如果您可以在代码中将其作为字符串获取,请考虑使用
进行解析NumberFormat.getNumberInstance(Locale.FRANCE).parse("0,00")
http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html