返回 导航

SpringBoot / Cloud

hangge.com

SpringBoot - 整合并操作Oracle数据库教程(手动添加ojdbc驱动)

作者:hangge | 2020-03-09 08:10
    由于 Oracle 授权问题,Maven 中央仓库不提供 Oracle JDBC driverSpring Boot 项目如果需要连接 Oracle 数据库,我们必须自行下载相应版本的 Oracle JDBC Driverjar 包,然后手动添加到本地仓库使用。或者将下载下来的驱动 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 数据库): 
<!-- 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>

附:操作 Oracle 数据库

(1)添加完数据库驱动后,下面实现一个简单的数据库操作样例:通过 JdbcTemplate 获取 数据库数据并展示到前台。
(1)关于 JdbcTemplate 更详细的用法,可以参考我之前写的文章: 

(2)或者我们也可以使用 MyBatis 操作 Oracle 数据库,具体可以参考我之前写的文章: 

(3)当然还可以使用 JPA 操作 Oracle 数据库,具体可以参考我之前写的文章: 

(2)首先编辑 pom.xml 文件,添加相关依赖:spring-jdbc 以及数据库连接池依赖:
<!-- spring-jdbc -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<!-- 数据库连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
</dependency>

(3)接着在 application.properties 中配置数据库连接信息:
spring.datasource.druid.second.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@192.168.1.133:1521:helowin
spring.datasource.username=scott
spring.datasource.password=abc

(4)创建数据表对应的实体类:
@Setter
@Getter
@NoArgsConstructor
@ToString
public class Dept {
    private Integer deptno;
    private String dname;
    private String loc;
}

(5)最后在 Controller 中注入 JdbcTemplate 并进行数据查询:
@RestController
public class HelloController {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @GetMapping("/test")
    public List<Dept> test(){
        List<Dept> depts = jdbcTemplate.query("SELECT * FROM dept",
                new BeanPropertyRowMapper<>(Dept.class));
        return depts;
    }
}

(6)启动项目,访问 /test 接口可以看到页面上成功显示出相关的数据信息:
评论

全部评论(0)

回到顶部