java - Mybatis Batch 将 Java BigDecimal 插入 SQL Server decimal(18,2) 无法正常工作
问题描述
看到我们使用的每一个建议BigDecimal
来避免精度问题。
我BigDecimal
在 java 中使用 SQL Server 列Decimal(18,2)
。
当我用new BigDecimal("37.99")
它插入值时,数据库中的值是 38。
我也尝试过使用new BigDecimal(str).setScale(2, RoundingMode.UNNECESSARY)
并且仍然在数据库中获得 38 。
我应该如何避免这个问题?
解决方案
我想我找到了解决方案
我正在使用 myBatis 批量插入来插入值,
有些值为0,我没有在程序中设置比例
使用最小比例来插入所有记录
在我设置每个 BigDecimal 值之后
new BigDecimal("37.99").setScale(2)
数据库值正确。
希望任何人都可以得到这个答案的帮助。
推荐阅读
- python-sphinx - 构建文档时如何告诉 sphinx 忽略“包含”指令?
- python - 如何自定义 Django 的默认邮件模板?(smtpd)
- c - 如果条件为真,如何返回结构,如果条件为假,如何返回 int
- php - (Wordpress) 我将 WooCommerce 产品的模板更改为类别图像,但图像仍未显示
- hadoop - Hive Joins 可以在 Apache Nifi 中实现吗?
- laravel - 用关系复制一些数据
- c# - 将 observable 集合绑定到 listview 不会传递 Xamarin.iOS 中的项目
- r - 如何在 R 中在数据框中的列名上方添加文本行并另存为 txt 文件
- angular - “窗口”类型上不存在属性“intlTelInput”
- unit-testing - 应用程序测试返回“NullInjectorError: No provider for Location!”