【转载】报错:The type oracle.jdbc.driver.OracleTypes is not visible

错误提示:

‘oracle.jdbc.driver.OracleTypes’ is not public in ‘oracle.jdbc.driver’. Cannot be accessed from outside package

原因: 这是因为项目用到的oracle jdbc的jar包太老了,在ojdbc14.jar中,OracleTypes类是public的,而到了oracle 11g的驱动中,比如ojdbc5.jar ,ojdbc6.jar中,这个类源码如下:

class OracleTypes extends oracle.jdbc.internal.OracleTypes { private static final String _Copyright_2007_Oracle_All_Rights_Reserved_ = null; public static final String BUILD_DATE = "Fri_Aug_26_08:19:15_PDT_2011"; public static final boolean TRACE = false; OracleTypes() { } }

1

2

3

4

5

6

7

class OracleTypes extends oracle.jdbc.internal.OracleTypes {

    private static final String _Copyright_2007_Oracle_All_Rights_Reserved_ = null;

    public static final String BUILD_DATE = "Fri_Aug_26_08:19:15_PDT_2011";

    public static final boolean TRACE = false;

    OracleTypes() {

    }

}

可以看到类的修饰符是default,default的表示只有同一个package下的类才能访问,所以报错。

解决办法:

第一种: 维护老项目,不能乱改,只能下载ojdbc14.jar版本的驱动。

第二种:替换为新版本的oracle 11g的驱动 ,将oracle.jdbc.OracleTypes 类替换 oracle.jdbc.driver.OracleTypes。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值