1. 程式人生 > 實用技巧 >2,springboot整合oracle資料庫

2,springboot整合oracle資料庫

前面,我們已經在本地建立了oracle表空間、登入使用者和一張使用者表:https://www.cnblogs.com/seeall/p/14016491.html

1,測試一下資料庫連線

結果,說明資料庫連線沒有問題。

2,使用資料庫連線池

以druid為例:

2.1,pom引入druid(有資料庫連線池功能)相關依賴

<!-- druid 資料庫連線池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>

2.2,在springboot專案的配置檔案appllication.yml或者appllication.properties配置資料來源和連線池屬性

遇到的問題:

a,從別的地方copy過來要特別注意空格和回車,不然屬性會獲取不到,手打基本沒問題;

b,bootstrap.yml檔案不生效,是因為bootstrap.yml是springcloud的配置檔案,springcloud是基於springboot的,

  只有在springcloud專案中bootstrap.yml會比application.yml優先順序高,而此處不生效是因為此時的專案仍然為springboot專案,

  不是springcloud專案,按網上的說法,pom引入spring-cloud-context依賴後,仍然在install過程中報錯了,此處就先不管了,

  等以後提升到springcloud專案後,再分析為什麼bootstrap.yml不生效;

2.3,使用步驟2.2中配置,注入資料來源

@ConfigurationProperties是springboot的註解,通過這個註解,專案可以獲取到對應的配置屬性,並返回資料來源,

不需要你手動set url/driver/username/password;

遇到的問題:自動掃描的類中,如controller層和service層的類,無法注入上面的資料來源bean,反而普通的類(非掃描範圍裡的類)可以注入

最後曲線救國,使用以下步驟2.4的方式在掃描範圍裡的類可以注入“資料來源”;

2.4,使用步驟2.3的資料來源生成JdbcTemplate

首先,pom引入jdbcTemplate相關的jar包:

<!-- 使用JdbcTemplate需要的jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>

遇到的問題:

1,controller無法引入service層的類,是因為service層的類不在掃描範圍內,加入掃描就可以了,如下:

2,奇怪的是,步驟2.3中資料來源那個bean無法在controller或service注入,但是jdbcTemplate的bean可以在controller和service中注入,

 他們之間就差了一個@ConfigurationProperties註解,原因有待考證?

2.5,看下效果