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