你在MySQL / Hibernate中映射BigDecimal的类型是什么类型的?

时间:2011-09-26 03:15:13

标签: java mysql hibernate bigdecimal

在完成上一次开发的代码训练后,我意识到我需要将所有基于钱的列移动到不使用浮点数学。在Java方面,这意味着使用BigDecimal,但在使用Hibernate / JPA和MySQL 5时,什么是适当的MySQL数据类型来制作该列?

1 个答案:

答案 0 :(得分:43)

DECIMAL和NUMERIC。

  

DECIMAL和NUMERIC类型的推荐Java映射是   java.math.BigDecimal中。 java.math.BigDecimal类型提供数学   允许添加,减去BigDecimal类型的操作,   用其他BigDecimal类型乘以整数   类型和浮点类型。

     

建议用于检索DECIMAL和NUMERIC值的方法是   ResultSet.getBigDecimal。 JDBC还允许访问这些SQL类型   简单的字符串或char数组。因此,Java程序员可以使用   getString接收DECIMAL或NUMERIC结果。但是,这样做   DECIMAL或NUMERIC用于货币值的常见情况相当尴尬,因为这意味着应用程序编写者必须   对字符串执行数学运算也可以检索这些SQL   类型为任何Java数字类型。

有关详细信息,请查看here