admin 管理员组文章数量: 888299
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下载
本文标签: java jdk7,jdk8连接oracle19C数据库ojdbc驱动
版权声明:本文标题:java jdk7,jdk8连接oracle19C数据库ojdbc驱动 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686637586h20298.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论