Spring Data JPA系列5:讓IDEA自動幫你寫JPA實體定義程式碼

2022-06-28 18:00:48

大家好,又見面了。

這是本系列的最後一篇檔案啦,先來回顧下前面4篇:

通過前面的系列檔案,我們一起對SpringData JPA從淺入深的進行了全方位的探討。正所謂「工欲善其事、必先利其器」,面對一個優秀的框架,如果再結合一些外部的工具,其實可以讓我們的開發效率與程式設計師開發過程的體驗更上一層樓的。

本篇內容,我們就一起來聊一聊這方面。

藉助IDEA提升效率

IDEA中直接連線資料來源

專案開發的時候,經常需要一邊寫程式碼一邊看下資料庫表資料或者欄位,需要在IDEA和資料庫使用者端之間來回切換,很麻煩。其實,IDEA中可以直接連線資料庫,直接在IDEA中檢視和執行資料庫操作,更加的方便快捷。

  1. 開啟View -> Tool Windows -> Database視窗

  1. 新增資料庫連線,點選+號 -> Data Source -> MySQL,如果需要連線其他型別資料庫,按需選擇

  1. 填寫Host、User、Password、Database等連線資訊,填好後點選OK

  1. 連線完成,可以檢視DB中資料,雙擊表名,可以檢視表中資料內容

  1. 點選開啟Console視窗,可以輸入SQL語句並執行

OK, Enjoy it...

IDEA自動生成實體物件

資料表定義好了,手動逐個寫對應的對映實體Entity,還是很繁瑣?教你讓IDEA自動給你生成Entity實體類!

  1. 開啟IDEA,點選File -> Project Structure選單

  1. 開啟的視窗中,點選Modules,點選右側+號按鈕,選擇JPA選單

  1. 選中JPA選項,切換下面Default JPA provider為Hibernate,點選OK

  1. IDEA視窗中多了個Persistence視窗,點選開啟

  1. 在Persistence視窗中選擇專案名稱,右鍵點選Generate Persistence Mapping -> By Database Schema

  1. 彈窗中,選擇一個資料來源(上一章節中講解的方式設定IDEA與DB的連線),選擇程式碼生成到的程式碼目標package位置,設定程式碼生成類名命名規則(prefix或者suffix),然後勾選需要生成對應程式碼實體的表,勾選左下角Generate JPA Annotations選項,點選OK

  1. 等一會兒,對應Entity類就會生成到上一步中指定的位置了。

  1. 後續再需要生成新的表對應實體類的時候,直接執行5~6兩個步驟即可。

後端也想寫出完美介面?必須安排!

不知道大家有沒有過這種經歷:

  • 作為一名後端程式設計師,往往有一個很好的idea,想自己開發個小系統或者小專案,但苦於自己只能寫後端服務,沒法配上一個美美的web介面。花了點時間學了下Vue或者React等前端腳手架之後,勉強寫出來的介面又醜又難用,而且同時維護前後端太耗費精力,最後很多優秀的idea都消失在歲月的洪流中。
  • 小型團隊,人力有限,沒有配齊前後端人員,讓後端人員開發蹩腳前端portal,導致整體體驗感較差
  • ...

這裡開源專案Erupt就要登場了,可以完美解決上述問題,堪稱後端程式設計師的福音。

為什麼在SpringData JPA相關教學中提到這個問題呢?因為Erupt的實現思路與JPA ORM的思路非常相似,對於SpringData JPA做資料處理的專案而言,可以非常簡單的幾個操作就對接到Erupt上!

詳細瞭解的話,可以去開源專案地址瞭解下,點此瞭解

  • Erupt的架構圖如下:

  • Erupt介面效果如下:

小結

好啦,本篇內容就介紹到這裡。

至此,本系列的教學就全部結束啦。通過本系列的幾篇檔案,為大家由淺入深的對JPA進行了全面的探討,希望能夠讓大家對SpringData JPA的學習與使用有一定的幫助。也祝願大家能夠在實際專案中,感受到JPA給我們開發過程帶來的便捷。

如果對本文有自己的見解,或者有任何的疑問或建議,都可以留言,我們一起探討、共同進步。


補充

Spring Data JPA作為Spring Data中對於關係型資料庫支援的一種框架技術,屬於ORM的一種,通過得當的使用,可以大大簡化開發過程中對於資料操作的複雜度。

本檔案隸屬於《Spring Data JPA用法與技能探究》系列的第5篇。本系列檔案規劃對Spring Data JPA進行全方位的使用介紹,一共分為5篇檔案,如果感興趣,歡迎關注交流。

《Spring Data JPA用法與技能探究》系列涵蓋內容:


我是悟道,聊技術、又不僅僅聊技術~

如果覺得有用,請點個關注,也可以關注下我的公眾號【架構悟道】,獲取更及時的更新。

期待與你一起探討,一起成長為更好的自己。