iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1
Modern Web

Spring Boot and React - 前後端 30 天分手日記系列 第 17

Day 17 - MySQL 使用Annontation設定欄位 (1)

  • 分享至 

  • twitterImage
  •  

上一章 Day 16 - MySQL 使用Spring Boot 自動建立Table設定

今天要教大家如何用Annontation指令欄位格式與型別

首先打開Member.java, 新增以下參數

@Data
@NoArgsConstructor
@RequiredArgsConstructor
@Entity
@Table(name = "members")
public class Member {

	@Id
	@Column(name = "mid", unique = true, nullable = false, length = 50)
	private String mid;
	@NonNull
    @NotEmpty
	@Column(name = "email", unique = true, nullable = false, length = 50)
	private String email;
	@NonNull
    @NotEmpty
	@Column(name = "password", nullable = false, length = 50)
	private String password;
	@NonNull
    @NotEmpty
	@Column(name = "first_name", nullable = false, length = 50)
	private String firstName;
	@NonNull
    @NotEmpty
	@Column(name = "last_name", nullable = false, length = 50)
	private String lastName;
	@Column(name = "create_time")
	private Date createTime;
	@Column(name = "update_time")
	private Date updateTime;

}

@Table(name = "members")

這是指定我們的Table名稱, member是MySQL保留字元, 我們使用members

@Id

這是指定Primary Key

@Column(name = "email", unique = true, nullable = false, length = 50)

這是指定欄位
name: 名稱
unique: 唯一性
nullable: 是否可為空
length: 長度

還有許多常用的例如:

@JoinColumn: 當Table中需要與另一個表關聯, 也就是所謂的Foreign Key

@GeneratedValue: 常用的strategy有兩種

IDENTITY: 由資料庫自動產生

AUTO: 由hibernate自動產生, 此種方法會跨table共用, 例: A表產生index 1, 2, 3, 之後B表則從4開始, 以此類推

新增完後, 現在執行我們的專案, 就可以看到MySQL mydb底下出現了我們要的Table

若需要改格式, 欄位大小, 都只要在程式上稍微調整即可

不僅淺顯易懂, 使用上也非常方便。

下一章 Day 18 - MySQL 使用Annontation設定欄位 (2)


上一篇
Day 16 - MySQL 使用Spring Boot 自動建立Table設定
下一篇
Day 18 - MySQL 使用Annontation設定欄位 (2)
系列文
Spring Boot and React - 前後端 30 天分手日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
obelisk0114
iT邦新手 5 級 ‧ 2019-12-15 18:13:56

由官方網站的寫法, AUTO 應該是 persistence provider (像是 Hibernate) 選擇一種產生 id 的方式。據一些網站的說法,有一種方式是選 SEQUENCE(allocationSize = 1),也就是大大寫的 hibernate_sequence table 方式。AUTO 也可以設 id 為 UUID 形式

coderrrr iT邦新手 5 級 ‧ 2021-09-18 15:07:33 檢舉

這是我在網路上看到比較簡單的4種說法

  • Auto- Default one. It does not take any specific action
  • Identity: Auto increment
  • Sequence: Oracle or Posgresql creates variable to auto increment
  • Table: Hibernate uses a database table to simulate a sequence

我要留言

立即登入留言