前段时间的一个项目需要使用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文件中加入一下内容:
java<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.15</version>
</dependency>
原本以为这一点是很简单的事情,但是发现Maven没法找到oracle的相关驱动,我又请教了万能的google发现该驱动需要手动下载安装:下载地址 下载后切换到驱动文件jar文件的目录下,执行命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar
安装该驱动,之后再IDEA中Reimport一下就会发现没有报错了。
3.配置数据库连接
驱动安装完成之后的下一件事就是配置druid与oracle相关数据的连接了
之前没有配置过oracle数据库,我在项目中的配置是参照以前的配置来写的如下:
datasource:
druid:
url: jdbc:oracle:thin:@ip:port:SERVICENAME
username: XXX
password: XXX
driver-class-name: oracle.jdbc.OracleDriver
maxWait: 10000
initial-size: 10
max-active: 30
min-idle: 10
validation-query: select version();
上面的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,而我是直接拿过来用了,导致上面问题的出现。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:c
文章转载自吼吼哈嘿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1234次阅读
2025-03-06 16:45:38
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1215次阅读
2025-03-13 11:40:53
2025年2月国产数据库大事记
墨天轮编辑部
949次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
841次阅读
2025-03-06 11:40:20
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
735次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
644次阅读
2025-03-06 09:41:49
【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
DarkAthena
538次阅读
2025-03-04 14:33:31
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
501次阅读
2025-03-05 00:42:34
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
436次阅读
2025-03-04 21:56:13
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
432次阅读
2025-03-13 14:38:19