SpringBoot - 整合并操作Oracle数据库教程(手动添加ojdbc驱动)
由于 Oracle 授权问题,Maven 中央仓库不提供 Oracle JDBC driver。Spring Boot 项目如果需要连接 Oracle 数据库,我们必须自行下载相应版本的 Oracle JDBC Driver 的 jar 包,然后手动添加到本地仓库使用。或者将下载下来的驱动 jar 包直接添加到项目中并配置使用。当然我们也可以直接使用一些第三方的驱动。下面通过样例分别演示这几种方法。
方式一:把 jar 添加到项目中
1,下载 jar 包
(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 驱动,直接添加如下依赖即可:
(2)首先编辑 pom.xml 文件,添加相关依赖:spring-jdbc 以及数据库连接池依赖:
(3)接着在 application.properties 中配置数据库连接信息:
(4)创建数据表对应的实体类:
(5)最后在 Controller 中注入 JdbcTemplate 并进行数据查询:
(6)启动项目,访问 /test 接口可以看到页面上成功显示出相关的数据信息:
<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 接口可以看到页面上成功显示出相关的数据信息: