你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 啥类型?
Posted
技术标签:
【中文标题】你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 啥类型?【英文标题】:What type would you map BigDecimal in Java/Hibernate in MySQL?你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 什么类型? 【发布时间】:2011-11-24 21:45:27 【问题描述】:在经历了之前开发的大量代码之后,我意识到我需要移动所有基于金钱的列以不使用浮点数学。在 Java 方面,这意味着使用 BigDecimal,但是当使用 Hibernate/JPA 和 mysql 5 时,生成该列的适当 MySQL 数据类型是什么?
【问题讨论】:
【参考方案1】:十进制和数字。
DECIMAL 和 NUMERIC 类型的推荐 Java 映射是 java.math.BigDecimal。 java.math.BigDecimal 类型提供数学 允许添加、减去 BigDecimal 类型的操作, 与其他 BigDecimal 类型相乘,除以整数 类型,以及浮点类型。
检索 DECIMAL 和 NUMERIC 值的推荐方法是 结果集.getBigDecimal。 JDBC 还允许访问这些 SQL 类型 作为简单的字符串或字符数组。因此,Java 程序员可以使用 getString 接收 DECIMAL 或 NUMERIC 结果。然而,这使得 DECIMAL 或 NUMERIC 用于货币值的常见情况相当尴尬,因为这意味着应用程序编写者必须 对字符串进行数学运算。也可以检索这些 SQL 类型为任何 Java 数字类型。
查看here 了解更多详情。
【讨论】:
更新链接:docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/…以上是关于你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 啥类型?的主要内容,如果未能解决你的问题,请参考以下文章