java jdk7,jdk8连接oracle19C数据库ojdbc驱动

之前程序是连接的oracle11G数据库,由于11G官方不再维护,很多客户升级到了oracle19C,

导致程序连接报错

我这边jdk为1.8 oracle jdbc驱动为

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14_g</artifactId>
    <version>10.2.0.4.0</version>
</dependency>

报错信息为java.sql.SQLException: ORA-28040: 没有匹配的验证协议

有一种解决方式为远程到oracle服务器,修改oracle服务端配置文件,改为兼容oracle11版本。

但是这种不大推荐,数据库服务器不是我们可以随便去远程,修改的,好多系统可能用一个实例。

所以修改数据库服务器配置的做法很多地方不适用。

1.jdk8程序连接oracle19C数据库

解决方法为升级orace jdbc驱动

修改pom文件ojdbc依赖为

 <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.3.0.0</version>
  </dependency>

 我们发现更新pom后 ojdbc8-19.3.0.0.jar依赖引入了很多jar,具体哪些可以从ojdbc8-19.3.0.0.pom看到,这些依赖都是不能排除的。排除了可能数据库能连接上 查询字段时缺少转换报错等

下面是我从oracle官方下载的jdk8 连接oracle19C 的jdbc驱动 jar集合,方便非maven结构项目使用。

2.jdk7连接oracle19C数据库

另外需要注意的是 如果数据库是oracle11G,jdk7,jdk8都是使用oracle14G驱动就行,而如果是oracle19C ,jdk7和jdk8的驱动不一样的。

 jdk7的项目连接oracle19C数据库使用ojdbc7-12.1.0.2.jar驱动即可

 对应的pom,注意是中央仓库的cn.easyproject包下,com.oracle下我好像没找到ojdbc7-12.1.0.2

<dependency>
  <groupId>cn.easyproject</groupId>
  <artifactId>ojdbc7</artifactId>
  <version>12.1.0.2.0</version>
</dependency>

3.报错Caused by: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

我这边pom跟新后启动可以,但是sql报错提示上诉错误,提示少了orai18n.jar

我查看ojdbc8-19.3.0.0.jar的pom有这个依赖的..

查看依赖关系也没引入orai18n.jar

查到原因是ojdbc8-19.3.0.0.jar的pom引入orai18n.jar时增加了<optional>true</optional>

导致不会依赖传递,但是这个这个pom我这边又不好改动 

解决方案是pom单独增加下该依赖,更新依赖,重启,sql执行成功

 

 <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>orai18n</artifactId>
            <version>19.3.0.0</version>
            <optional>true</optional>
    </dependency>

后续又发现问题,maven clean mvn package打包时,orai18n.jar 没打包进去,项目引入该jar时也需要把<optional>true</optional>标签去掉,mvn package才会把该jar打包进去

 <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>orai18n</artifactId>
            <version>19.3.0.0</version>
 </dependency>

4.最后附上jdbc驱动下载链接

jdk7_jdk8-oracle19C所需驱动.zip_jdk8的oracle驱动-互联网文档类资源-CSDN下载

Oracle Database 12c Release 1 (12.1.0.1) JDBC Drivers SimpleFAN Download simplefan.jar (21,048 bytes) - Classes for subscribing to RAC events via ONS; simplefan policy and javadoc JDBC Thin for All Platforms Download demo.tar (686,080 bytes) - JDBC Demos (TAR format) Download demo.zip (614,561 bytes) -JDBC Demos (ZIP format) Download JavaDoc (7,103,997 bytes) Download README Download ojdbc6.jar (3,389,454 bytes) - For use with JDK 6; It contains the JDBC driver classes except classes for NLS support in Oracle Object and Collection types. Download ojdbc6_g.jar (5,382,573 bytes) - Same as ojdbc6.jar except compiled with "javac -g" and contains tracing code. Download ojdbc6dms.jar (4,033,913 bytes) - Same as ojdbc6.jar, except that it contains instrumentation to support DMS and limited java.util.logging calls. Download ojdbc6dms_g.jar (5,405,632 bytes) - Same as ojdbc6_g.jar except that it contains instrumentation to support DMS. Download ojdbc7.jar (3,397,734 bytes) - For use with JDK 7; It contains the JDBC driver classes except classes for NLS support in Oracle Object and Collection types. Download ojdbc7_g.jar (5,395,834 bytes) - Same as ojdbc7.jar except compiled with "javac -g" and contains tracing code. Download ojdbc7dms.jar (4,044,963 bytes) - Same as ojdbc7.jar, except that it contains instrumentation to support DMS and limited java.util.logging calls. Download ojdbc7dms_g.jar (5,419,088 bytes) - Same as ojdbc7_g.jar except that it contains instrumentation to support DMS. Download orai18n.jar (1,659,576 bytes) - Classes for NLS support Download xdb6.jar (263,690 bytes) - Classes to support standard JDBC 4.x java.sql.SQLXML interface (Java SE 6 & Java SE 7). 附件里的文件都可以在这里下载,只是不用再注册用户了: http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
连接Oracle 19c数据库,需要下载适用于JavaOracle 19c驱动程序。以下是下载驱动程序的步骤: 1. 打开Oracle官方网站。在浏览器中输入"Oracle 19c驱动程序下载"或直接访问www.oracle.com。 2. 在官网主页上,找到菜单或搜索栏。输入"下载"或“驱动程序”进行搜索。 3. 从搜索结果中找到“驱动程序下载”或类似的链接,并点击进入。 4. 在驱动程序下载页面上,找到适用于JavaOracle 19c驱动程序。通常会提供多个版本以适应不同的操作系统和JDK版本。选择与您的系统和JDK版本兼容的驱动程序。 5. 一旦找到适合的驱动程序,点击下载链接将其保存到您的计算机上。请注意保存的文件格式和位置。 6. 下载完成后,解压缩驱动程序文件。通常,它们被压缩为zip或tar.gz格式,并包含JAR文件。 7. 将解压缩的JAR文件复制到您的Java工程中的适当位置。这可以是您的IDE项目文件夹内的lib目录或其他自定义位置。 8. 在Java代码中配置连接Oracle 19c数据库的相关信息,比如数据库URL、用户名和密码等。确保使用正确的驱动程序类和JAR文件路径。 9. 运行您的Java应用程序,它将能够连接Oracle 19c数据库并执行相关操作。 总之,要连接Oracle 19c数据库,您需要从Oracle官方网站下载适用于JavaOracle 19c驱动程序,并将其配置到您的Java项目中。请确保驱动程序与您的操作系统和JDK版本兼容,并在代码中正确配置连接信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值