前面,我們已經在本地創建了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>
遇到的問題;
spring-tx下有紅色波浪線,install無法下載spring-tx,是因為我的maven的settings配置文件配了3個鏡像,從其中一個下載失敗后,就不去其他鏡像下載了;
而我的另一個項目,同樣的依賴,從其中一個下載失敗后,還會去其他鏡像下載,直到成功;最后我在settings文件里,只保留了能成功下載的鏡像,更新依賴后就好了,如下:
,原因未知,和鏡像的選擇策略有關,可以去網上看看;
其次,
遇到的問題:
1,controller無法引入service層的類,是因為service層的類不在掃描范圍內,加入掃描就可以了,如下:
2,奇怪的是,步驟2.3中數據源那個bean無法在controller或service注入,但是jdbcTemplate的bean可以在controller和service中注入,
他們之間就差了一個@ConfigurationProperties注解,原因有待考證?
2.5,看下效果