昨天我們介紹了幾種 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
外,還包含了 IDENTITY
、 SEQUENCE
等策略(日後有機會再介紹)。@Table
,用於指定實體類對應資料庫的資料表名稱, @Table
註解中可以設定以下屬性:@Column
,用於指定實體類屬性對應資料表內的欄位,@Column
註解中可以設定以下屬性:true
。