Spring Boot(三):操作數據庫-Spring JDBC

Spring Boot訪問數據庫,常用的方式有Mybaits、Hibernate以及Spring Boot提供的JDBC這三種方式。其中,Spring JDBC,是Spring中最基本、最底層的訪問數據庫的實現方式。

我將會分三次內容對每種操作數據庫的方式進行分別說明,感興趣的話,繼續關注後續文章更新哦~


Spring Boot(三):操作數據庫-Spring JDBC


今天,我們先一起來看Spring JDBC是如何操作數據庫的。希望大家通過本篇文章的閱讀,可以瞭解到

  • 超級好用的lombok
  • Spring Boot的常用bean註解
  • 如何使用Spring JDBC操作mysql數據庫


一、實戰原理


1 超級好用的開發輔助工具-lombok


項目演示中會使用到一個超級好用的開發輔助工具lombok。使用它,不僅會節省我們的時間,還會大大減少代碼量。


使用它開發,只需要在IDEA中添加lombok插件,並引入lombok依賴即可(本文不做具體介紹,網上資料很多,大家隨便搜搜就出來啦)。

常用註解

  • @Getter和@Setter :使用在屬性上,生成的getter和setter方法。
  • @ToString :使用在類上,為對應類實現toString方法。
  • @EqualsAndHashCode :使用在類上,生成hashCode和equals方法。
  • @NoArgsConstructor :使用在類上,生成無參的構造方法。
  • @AllArgsConstructor :使用在類上,生成包含類中所有字段的構造方法。
  • @Data :使用在類上,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
  • @Slf4j :使用在類上,生成log常量。演示中會用到。


2 Spring 常用的bean註解

  • @Component ---一個通用的註解,可以定義一個通用的Bean
  • @Repository ---數據操作倉庫,即用於定義數據庫操作dao層
  • @Service - -業務服務,用於服務層
  • @Controller --- 用於controller層
  • @RestController---Spring Boot針對Rest服務定製的@Controller註解


3 使用的依賴

<code><dependency> 
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-jdbc/<artifactid>
/<dependency>/<code>

4 簡單的JDBC操作方法

JDBCTemplate為我們提供了增刪改查數據庫的方法。

<code>query

queryForObject

queryForList

queryForMap

update

execute/<code>

查詢,除了基本查詢,還提供了返回值分別為Object、list、map等查詢方法,update方法可以分別對數據進行增刪改操作,execute則為基本的數據庫執行方法。

5 方法原理

Spring JDBC,即Spring對JDBC的整合,使我們的使用更為便捷而已。各個操作方法的背後,其實也是執行了JDBC的那6個步驟:

  • a 加載數據庫驅動
  • b 建立鏈接
  • c 創建statement
  • d 執行SQL語句
  • e 處理結果集
  • f 關閉數據庫


Spring Boot會根據引入的依賴,加載數據庫驅動。而JdbcTemplate操作方法,則包含了後5個步驟

Spring Boot(三):操作數據庫-Spring JDBC


其中第4、5步驟,是包含在調用的具體操作類中的。而代碼中是使用action.doInStatement(stmt)去調用具體的操作類的。如query方法


Spring Boot(三):操作數據庫-Spring JDBC


二、實戰環節


好了,做了這麼多準備工作,接下來,讓我們正式進入實戰環節吧~


由於工作、學習中mysql數據庫使用比較普遍,因此特地在此為大家演示Spring JDBC如何實現操作mysql數據庫。其他數據庫的方式也很類似。只需要更換對應的數據庫連接包以及地址配置即可。


那麼有的同學估計要問了,它都支持哪些數據庫呢?


答案就是,支持JDBC的所有數據庫嘍~也就是說它支持幾乎所有關係型數據庫的操作。


1 引入依賴


需要分別引入以下三個依賴:

  • spring-jdbc依賴:spring-boot-starter-jdbc
  • mysql連接類:mysql-connector-java
  • lombok開發輔助類:lombok


2 數據庫信息配置


在配置文件application.properties中分別配置數據庫的url、username、password。


Spring Boot(三):操作數據庫-Spring JDBC


Tips1:

Spring Boot 會根據我們引入的數據庫連接依賴類型,自動配置數據庫的驅動,因此我們可以不需要配置數據庫的驅動項。


同時還要保證數據庫中已經存在了我們後續要用到的User表哦~我創建的表是這樣的

Spring Boot(三):操作數據庫-Spring JDBC


3 新建實體類


Spring Boot(三):操作數據庫-Spring JDBC


我們可以看到,實體類User中就是用了 lombok的兩個註解 @Data和@Builder,有了這兩個註解,我們的實體類,就變得清爽很多了~


4 新建dao層

1)定義類。使用@Repository註解,聲明該類為dao層的bean,通過lombok的@Slf4j註解,進行快捷的日誌輸出

2)注入JdbcTemplate

3)具體操作。使用JdbcTemplate中的操作類,分別新增、查詢操作


Spring Boot(三):操作數據庫-Spring JDBC


查詢,分別演示了返回結果為對象和返回為List的兩種情況,大家感興趣可以自己再嘗試一下其他情況。


Spring Boot(三):操作數據庫-Spring JDBC

Spring Boot(三):操作數據庫-Spring JDBC


5 調用dao層方法

Spring Boot的啟動類,實現了ApplicationRunner接口,並覆蓋其run方法。服務啟動時,就會運行run方法。在run方法中分別調用添加用戶、查詢用戶列表的方法。


Spring Boot(三):操作數據庫-Spring JDBC


Tips2:與ApplicationRunner類似的接口還有CommandLineRunner,大家有興趣可以先自己瞭解一下,以後有機會可以給大家專門講解。在這個地方,大家只需要瞭解ApplicationRunner接口的用法即可。


6 啟動項目


Spring Boot(三):操作數據庫-Spring JDBC


我們可以看到,日誌中顯示,添加了一條數據,並查詢到一條記錄

好了,相信大家對簡單的Spring JDBC操作數據庫方法已經掌握了~

Spring Boot(三):操作數據庫-Spring JDBC


如果想了解更多的操作方法,包括批量操作,查詢結果類型為Map的,以及使用NamedSql的方式,大家可以查看操作類JDBCTemplate,結合官網進行進一步的學習。 當然,有任何問題,也歡迎大家留言與我溝通哦~


三、總 結


1 強大的開發輔助工具lombok可以簡化我們的開發

2 Spring Boot 常用聲明bean的註解

3 Spring JDBC操作數據方式


今天演示了Spring JDBC操作數據庫的原理及方式,並在同時也提到了Spring Boot常用聲明bean的註解、lombok工具的使用、JDBC操作數據庫的原理等內容。


以後,我會繼續以這種原理+實戰的方式,來講述Spring Boot的功能點。這樣學習效率可能更高。建議大家實戰結束以後,再返回看一遍原理,效果會更佳哦


如果你感覺到自己學到了很多,或者複習到了很多技能點,就快來關注微信公眾號-青梅主碼,一起繼續學下去吧~

我會持續更新的哦~


本期項目代碼已上傳到github~有需要的可以參考

<code>https://github.com/wangjie0919/Spring-Boot-Notes/<code>


Spring Boot往期系列文章回顧:


2.


分享到:


相關文章: