iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0

昨天我們介紹了幾種 Spring 與 資料庫進行交互的方式

因為筆者在開發上多數都是使用 Spring Data JPA 操作資料庫 所以今天想要針對它再做更深入一點的介紹 最後會再搭配一個小實作

前面有提到,Spring Data JPA 它是以ORM 的方式透過Java物件去操作資料庫中的資料表 而不是直接操作資料庫。如果想要透過此方式操作,首先你需要建立一個實體類(Entity)。

什麼是Entity?
Entity 是用來表示資料庫中的資料表的Java 類別,在Entity中的屬性,則對應了資料表內的欄位,它的作用就是在將資料表內的欄位資料映射到Java的物件中。

實體類通常會使用 @Entity註解標註(備註一下,@Entity 註解不由 Spring IoC 容器管理,而是由JPA 的 session 或是 entityManger 負責管理它們的狀態變化)

在Java 實體類中,常見的註解有:

  • @Entity ,用於標註該類別是一個實體類,該類將對應到資料庫中的某個資料表。
  • @Id ,用於表註屬性為主鍵
  • @GeneratedValue ,用於指定如何產生實體類中的主鍵值,如果沒有設定生成策略的話,預設就會是 GenerationType.AUTO 它會根據所連接的資料庫來決定生成策略。除了AUTO 外,還包含了 IDENTITYSEQUENCE 等策略(日後有機會再介紹)。
  • @Table,用於指定實體類對應資料庫的資料表名稱, @Table 註解中可以設定以下屬性:
  1. name:定義資料表的名稱。
  2. schema:定義所屬的schema。
  3. catalog:定義資料庫的目錄名稱。
  • @Column,用於指定實體類屬性對應資料表內的欄位,@Column註解中可以設定以下屬性:
  1. name:定義資料表欄位名稱。
  2. length:定義欄位資料的長度。
  3. nullable:是否允許欄為值為空,默認值為 true
  4. unique:是否要求欄位值是唯一。

上一篇
Day15 - Model中的資料存取層
下一篇
Day17 - Spring Data JPA (2)
系列文
這些年SpringBoot實戰開發教會我的事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言