JDBC遇到的ClassCastException问题

       在jdbc连接数据库的时候,需要三个重要的类:Connection,Statement,ResultSet。但是在导包的时候却有两种选择:

 

两者的区别:

        com.mysql.jdbc.Connection 是mysql自己的接口 针对于对mysql的出来,java.sql.Connection 这是一个公共的接口包括对mysql的支持oracle,sqlserver 对很多数据库一个公共的API!

         使用com.mysql.jdbc.Connection在后边的赋值中会提示类型不匹配问题,一般情况下只需要进行类型强制转换就可以了,但是在用Druid开源连接池的时候却出现了问题:Type mismatch: cannot convert from DruidPooledConnection to Connection。

        这是导包出了问题,只需要将 com.mysql.jdbc.Connection替换成java.sql.Connection就行了,而且不用再进行强制类型转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ClassCastException是Java中的一个异常类,它表示在类型转换过程中发生了错误。当我们试图将一个对象强制转换为不兼容的类型时,就会抛出ClassCastException异常。 例如,假设我们有以下代码: ```java class Animal { // ... } class Dog extends Animal { // ... } class Cat extends Animal { // ... } public class Main { public static void main(String[] args) { Animal animal = new Dog(); Cat cat = (Cat) animal; // 这里会抛出ClassCastException异常 } } ``` 在上面的代码中,我们将一个Dog对象赋值给了一个Animal类型的变量animal。然后,我们试图将animal对象强制转换为Cat类型的变量cat。由于Dog和Cat是不兼容的类型,所以在运行时会抛出ClassCastException异常。 ClassCastException通常发生在以下情况下: 1. 当我们试图将一个父类对象强制转换为子类类型时,如果实际对象不是子类的实例,就会抛出ClassCastException异常。 2. 当我们试图将一个接口类型的对象强制转换为实现该接口的类类型时,如果实际对象不是该类的实例,也会抛出ClassCastException异常。 为了避免ClassCastException异常的发生,我们可以使用instanceof运算符来检查对象是否是某个特定类型的实例。例如,在上面的例子中,我们可以使用instanceof运算符来检查animal对象是否是Cat类型的实例,然后再进行类型转换。 相关问题: 1. 什么是类型转换? 2. 什么是instanceof运算符? 3. 如何避免ClassCastException异常的发生?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值