由于 Oracle 授权问题,Maven 中央仓库不提供 Oracle JDBC driver。Spring Boot 项目如果需要连接 Oracle 数据库,我们必须自行下载相应版本的 Oracle JDBC Driver 的 jar 包,然后手动添加到本地仓库使用。或者将下载下来的驱动 jar 包直接添加到项目中并配置使用。当然我们也可以直接使用一些第三方的驱动。下面通过样例分别演示这几种方法。
方式一:把 jar 添加到项目中
1、下载 jar 包
(1)首先访问 Oracle 官方的 JDBC Drivers 页面(点击访问)。查看自已的 oracle 版本(比如我的数据库版本是 11g),点对应的版本进去:
(2)然后将 ojdbc 驱动 jar 包下载到本地:
2、添加并使用 jar 包
(1)我之前写过文章介绍如何在项目中引入本地或第三方 JAR 包(点击查看),这里操作步骤同之前是一样的。首先在与 src 同级的目录下新建一个 lib 目录,然后将 jar 包放在 lib 目录下:
(2)接着配置 pom.xml 文件,在依赖中添加需要引入的 jar 包(比如我这里使用的是 ojdbc6.jar,连接 11g 数据库):
<!--Oracle数据库依赖-->
<!-- ojdbc6.jar 对应 11g -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
(3)其他版本的可以参考如下配置:
<!-- ojdbc7.jar 对应 12c.1 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc7.jar</systemPath>
</dependency>
<!-- ojdbc8.jar 对应 12c.2 18c -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc8.jar</systemPath>
</dependency>
<!-- ojdbc10.jar 对应 19c (19.3) -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc10.jar</systemPath>
</dependency>
(4)最后还需要在 spring-boot-maven-plugin 部分添加如下配置,否则项目只能运行,一旦需要打 jar 就会报错。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
方式二:将 jar 安装到本地仓库
1、下载 jar
首先同样按照上面的步骤,将对应版本的数据库驱动 jar 包下载到本地。
2、安装到本地仓库并使用
(1)然后打开控制台在 jar 包同一级目录下执行如下命令将 jar 包安装到本地仓库:
注意:我这里使用的是 ojdbc6.jar,对应数据库是 Oracle 11g。如果使用的是其他版,修改相关参数配置即可。
mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar
(2)安装完毕后,项目中就可以直接引入使用了:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
方式三:使用第三方驱动
如果嫌上面两种方式麻烦的话,我们也可以使用于第三方开源组织,比如 hynnet 的 oracle 驱动,直接添加如下依赖即可:
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>oracle-driver-ojdbc6</artifactId>
<version>12.1.0.1</version>
</dependency>