你会在 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 啥类型?的主要内容,如果未能解决你的问题,请参考以下文章

Django

你会在 Rails 应用程序中使用啥来自动完成?

Django进阶

如果你要求一个整数并且用户输入“b”,你会在 C++ 中做啥?

你会在Hive中使用GIS function么?

你会在C#的类库中添加web service引用吗?