JDBC连接失败java.sql.SQLException: ...ClassCastException: BigInteger cannot be cast to Long

在代码里连接数据库执行批量插入,结果一直报错如上。

最后发现是mysql jar包的问题

原来的jar包版本和我的MySQL版本不一致。最后把mysql-connector-java-5.1.22改成mysql-connector-java-5.1.48就行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个Java编程中的异常错误,错误信息为“java.sql.sqlexception: java.lang.classcastexception: java.math.biginteger cannot be cast to java.lang.long”。意思是Java程序中出现了类型转错误,将一个BigInteger类型的数据强制转成了long类型,导致出现了异常错误。需要检查程序中的类型转操作,确保数据类型的匹配和转正确无误。 ### 回答2: 这个错误是由于将一个 BigInteger 类型的变量尝试转long 类型时引起的,而两者的数据类型不兼容。尽管 BigIntegerlong 都是用于表示整数的 Java 数据类型,但它们的内部实现方式是不同的,这就导致了类型转的问题。 BigInteger 类型适用于需要使用比 long 类型范围更广的整数值的情况。在 Java 中,long 的取值范围是 -2^63 ~ 2^63-1,而 BigInteger 的取值范围是无限的。因此,当我们需要处理超出长整数类型限制的整数时,我们需要使用 BigInteger 类型。 而当我们需要使用一个 BigInteger 类型的值作为 long 类型的值时,我们需要进行类型转。但由于数据类型的范围不同,所以会出现转错误,即 java.lang.classcastexception: java.math.biginteger cannot be cast to java.lang.long。 为了避免这种错误,我们可以使用 BigIntegerlongValue() 方法将 BigInteger 类型的值转long 类型的值。该方法返回 BigInteger 对象的 long 数值表示形式,如果 BigInteger 对象的数值超出了 long 类型的范围,则该方法将返回 long 类型的最大值或最小值。 在编程时,我们应该根据实际需求选择使用不同的整数类型,同时在进行类型转时,应该注意数据类型的范围,避免出现类似的错误。 ### 回答3: java.sql.sqlexception异常提示出现了类型转错误,即将一个BigInteger类型强制转成了Long类型。这个过程中出现了ClassCastException异常,表明这种类型转是非法的,无法进行的。原因在于BigInteger类型是Java中用来表示任意大小整数的类,而Long类型只能表示64位有符号整数。这样的类型转精度会出现问题,从而导致转失败。 对于这个问题的解决方法,可以考虑将BigInteger类型转Long类型的正确做法:使用BigInteger.longValue()方法,利用这个方法可以将BigIntegerLong类型,同时可以避免类型转的精度问题。如果在程序中使用Long.parseLong()方法或者(long)BigInteger的方式进行类型转,都会出现类型转失败的情况。因此,针对这种错误的处理方式,需要提高程序中对类型转的精度和正确性的要求,同时尽可能使用Java提供的类型转方法来完成类型转的工作。 总之,在Java编程中避免类型转错误非常重要,这种错误很容易在代码中出现,而且会导致程序的崩溃。因此,在编写程序时应该特别注意类型转问题,并且使用Java提供的强制类型转的方法来保证转的正确性和精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值