Jdbc 替换不推荐使用的方法java.sql.CallableStatement.getBigDecimal(int-parameterIndex,int-scale)

Jdbc 替换不推荐使用的方法java.sql.CallableStatement.getBigDecimal(int-parameterIndex,int-scale),jdbc,java-8,Jdbc,Java 8,我试图替换这个不推荐的方法,但是建议的替换忽略了Scale参数 scale参数对我的应用程序来说似乎很关键,但我无法找到一种有效的方法来保持精度值 然而,对于ResultSet对象,setScale()方法是一种保存方法,但CallableStatement中没有这样的方法。有人能推荐一个替代方案吗?如以下文件所述: 已弃用。使用getBigDecimal(int-parameterIndex)或getBigDecimal(String-parameterName) 使用getBigDecima

我试图替换这个不推荐的方法,但是建议的替换忽略了Scale参数

scale参数对我的应用程序来说似乎很关键,但我无法找到一种有效的方法来保持精度值


然而,对于ResultSet对象,setScale()方法是一种保存方法,但CallableStatement中没有这样的方法。有人能推荐一个替代方案吗?

如以下文件所述:

已弃用。使用
getBigDecimal(int-parameterIndex)
getBigDecimal(String-parameterName)

使用
getBigDecimal(int)
getBigDecimal(String)
,将返回

[…]指定的JDBC
数值
参数的值作为
java.math.BigDecimal
对象,该对象的右边有尽可能多的数字 值包含的小数点


如果需要更改比例,则需要使用(或其同级之一)。这是大多数(如果不是全部的话)JDBC驱动程序在弃用的
getBigDecimal(int-parameterIndex,int-scale)
方法中所做的。

只需调用
getBigDecimal(int-parameterIndex)
,然后对生成的
BigDecimal
调用
setScale()
。为什么scale参数对应用程序至关重要?这表明数据库中定义的比例在某种程度上不适合您?此外,结果集也没有
setScale()
方法(至少不在
java.sql.ResultSet
中)。@markrottveel感谢您的回答!我不确定原因,因为我正在处理一个遗留应用程序。我只是希望暂时避免遇到回归问题。同时,ResultSet中的setScale()有什么关系?在检索特定字段值时使用它还不够好吗?你能解释一下这一点吗?结果集中没有
setScale()
,所以我不知道你的意思。