前段时间的一个项目需要使用oracle数据库,之前使用的都是Spingboot+Mybatis+Druid+Mysql,没有配置Oracle的经验,现在记录一下
1.使用Navicat Premium连接数据库
在得到公司提供给我的oracle数据库相关密码后,第一反应当然是连上Navicat看一下了,很不幸的是第一步就遇到了一个坑:
下图是我配置的连接属性:(我再三确认过没有填错)
但是出现了错误提示如下:
经过万能的google搜索,发现是缺少OCI库的原因,没办法又去Orcale官网下载了个instantclient-basic,下载地址下载后解压到你的Navicat安装目录下。我的如下:
下载完成后将OCI环境改为刚刚安装的oci.dll文件的位置,确认后重启Navicat就能发现成功连接。
2.springboot项目安装连接Oracle驱动
在使用Navicat连接成功后就要开始配置项目了
首先在pom文件中加入一下内容:
原本以为这一点是很简单的事情,但是发现Maven没法找到oracle的相关驱动,我又请教了万能的google发现该驱动需要手动下载安装:下载地址 下载后切换到驱动文件jar文件的目录下,执行命令:
安装该驱动,之后再IDEA中Reimport一下就会发现没有报错了。
3.配置数据库连接
驱动安装完成之后的下一件事就是配置druid与oracle相关数据的连接了
之前没有配置过oracle数据库,我在项目中的配置是参照以前的配置来写的如下:
上面的ip即为数据库所在服务器的ip地址,port为数据库开放的端口号,SERVICENAME即为上面的服务名。
然后我写了个测试类尝试去查数据库的内容,当然又报错了,看错误日志发现好像是sql语句多了个;号,但是我写的测试SQL语句并不包含;号,然后我仔细排查了一遍发现yaml文件中有一句是 :
validation-query: select version();
我怀疑是这里出现了错误,就把这句话给删掉了,然后再运行就发现可以正常的执行SQL语句了。
虽然这次成功配置了,但是还是写一遍文章记录一下较好,在复盘此次配置的过程中因为之前对yaml配置文件中的validation-query: select version();不是很了解,我又重新查找了资料,发现validationQuery语句是用在配置数据库连接池时验证数据库连接的有效性,常用数据库的相关语句如下:
数据库 ···················validationQuery
Oracle····················select 1 from dual
DB2·······················select 1 from sysibm.sysdummy1
mysql·····················select 1
microsoft sql············select 1
hsqldb····················select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
postgresql···············select version();
ingres····················select 1
derby·····················select 1
H2·························select 1
现在才恍然大悟,因为我们公司之前的项目好多是使用的MYSQL,而我是直接拿过来用了,导致上面问题的出现。
Navicat Premium 11.2.17激活今天的文章
Navicat Premium 11.2.17激活(Springboot项目配置oracle数据库)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/114007.html