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

ben*_*rre 37 java mysql hibernate numbers bigdecimal

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

Abi*_*san 45

DECIMAL和NUMERIC.

推荐的DECIMAL和NUMERIC类型的Java映射是java.math.BigDecimal.java.math.BigDecimal类型提供数学运算,以允许BigDecimal类型与其他BigDecimal类型,整数类型和浮点类型相加,相减,相乘和除.

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

请查看此处了解更多详情.