21、springboot——JDBC+自動配置原理


 1、創建項目(通過idea)

這里的mysql就是幫助我們導入mysql驅動的。

然后通過項目下的pom.xml文件,可以發現我們導入了下面這些依賴。

我們在使用最基本的jdbc的時候,我們只要引入jdbc和mhysql驅動就可以了。

2、與數據庫連接

  新建一個數據庫

  編寫配置文件

然后在resources下的新建一個application.yml文件進行編寫相關的配置文件。

  測試

  測試結果:可以看出 Spring Boot 2.x 默認使用 com.zaxxer.hikari.HikariDataSource 數據源,而以前版本,比如 Spring Boot 1.5 默認使用 org.apache.tomcat.jdbc.pool.DataSource 作為數據源;至於原因也很簡單,聽聞HikariDataSource 是當前速度最快的數據源,相比於傳統的 C3P0 、DBCP、Tomcat jdbc 等連接池更加牛皮,因此springboot把它作為默認的數據源了。

3、原理解析

回到配置文件,我們按住ctrl鍵點username進去;

然后進入DataSourceProperties.java文件。可以發現數據源的相關配置都是在這里配置的。

那么為什么會是這樣的效果?包括我們自動裝配到數據源,而且springboot默認使用hikari作為數據源的。

那么我們可以探究一下有關數據源的自動配置原理。

我們打開自動配置包

找到jdbc部分;我們可以發現jdbc下都是一些跟數據源有關的配置。

  1、DataSourceConfiguration

這里的@Bean表示給容器中加組件。都是加一些DataSource。

DataSourceConfiguration這個類主要是給容器中加數據源的但是加哪些數據源,就根據各種判斷,根據有matchIfMissing=true這個配置則是默認數據源

如果需要使用其他數據源根據條件進行配置即可。

  2、DataSourceAutoConfiguration等源碼文件可以自行查看

二、通過程序創建表

  通過程序建表首先需要修改一下配置文件

sql文件如下路徑

我們在跑程序建表語句的時候,我們首先要得到這個建表的sql文件

  通過源碼查看如何獲取建表文件

而它獲取呢,你可以指定文件的位置,它如果能夠獲取得到,它就OK了。如果不行就從類路徑下找fallback

而這個fallback呢,就是我們之前傳的這個schema

也就是說呢,它來找下面的platform.sql或者.sql , 而這個platform默認就是all

所以要運行這個schema文件就要改名,改成schema-all.sql 或者schema.sql

這個名字的sql文件是默認加載的。

運行程序,成功建表。

當然,如果不想改sql文件名,就用department.sql進行建表也可以。但是我們要修改配置文件。

 注意一點:****建表成功后需要把原來的sql 文件刪除或者修改為程序執行不到的文件名;否則再次運行則原來的表會刪除然后新建

三、操作數據庫

然后如果在有數據源的情況下,它還給我們容器中放一個JdbcTemplate 以及NameParameterJdbcTemplate(具名參數JdbcTemplate),方便我們操作數據庫。

    寫一個HelloController,進行數據查詢。這里要注意的是,如果那個scema.sql不刪除,那么我們重新啟動這個程序的時候就會再運行一次schema.sql文件,原來中的數據就會消失。所以,當我們不用的時候就要刪除schema.sql文件。

我們在數據庫中插入數據。

成功返回JSON數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM