我已经使用 JDBC 将 Java 程序连接到 Oracle 数据库。我想存储BigInteger
数据库中的值(512 位)。列的类型应该是什么?
我正在尝试这样:
我在数据库中获取了一列数字类型。
我转换了BigInteger
to BigDecimal
像这样:
BigInteger b=new BigInteger("5779857570957802579079");
Number n =b;
BigDecimal d=(BigDecimal)n;
PreparedStatement pstmt=con.prepareStatemant("insert into database values(?,?)");
pstmt.setString(1,"john");
pstmt.setBigDecimal(2,d);
我收到以下异常:
javax.servlet.ServletException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.math.BigDecimal
root cause
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.math.BigDecimal
这段代码有什么问题吗?如果有请推荐其他方法。
BigInteger 和 BigDecimal 都扩展了 java.lang.Number,但这并不意味着您可以从 BigInteger 向上转换为 Number,然后向下转换为 BigDecimal。
BigDecimal 中有一个接受 BigInteger 的构造函数,因此请尝试:
BigDecimal d = new BigDecimal(b);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)