con*_*nya 5 java oracle jdbc oracle10g
我使用JDBC将Java程序连接到Oracle数据库.我想BigInteger在数据库中存储值(512位).列的类型应该是什么?
我是这样想的:
我在数据库中选了一个数字类型的列.
我转换BigInteger成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);
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:
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
这段代码片段有什么问题吗?如果有,请建议其他方法.
我没有直接回答你的问题,但我只看到一种可以存储 512 位数字的 Oracle 数据类型:varchar2(156) (156 = abs(log(2^512))+2)
所以我宁愿将大整数转换为字符串而不是大十进制。
| 归档时间: |
|
| 查看次数: |
12950 次 |
| 最近记录: |