暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Springboot项目配置oracle数据库

吼吼哈嘿 2025-01-09
44

前段时间的一个项目需要使用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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论