jpa經常使用的註解:java
註解 | 解釋 |
---|---|
@Entity | 聲明類爲實體或表。 |
@Table | 聲明表名。 |
@Basic | 指定非約束明確的各個字段。 |
@Embedded | 指定類或它的值是一個可嵌入的類的實例的實體的屬性。 |
@Id | 指定的類的屬性,用於識別(一個表中的主鍵)。 |
@GeneratedValue | 指定如何標識屬性能夠被初始化,例如自動、手動、或從序列表中得到的值。 |
@Transient | 指定的屬性,它是不持久的,即:該值永遠不會存儲在數據庫中。 |
@Column | 指定持久屬性欄屬性。 |
@SequenceGenerator | 指定在@GeneratedValue註解中指定的屬性的值。它建立了一個序列。 |
@TableGenerator | 指定在@GeneratedValue批註指定屬性的值發生器。它創造了的值生成的表。 |
@AccessType | 這種類型的註釋用於設置訪問類型。若是設置@AccessType(FIELD),則能夠直接訪問變量而且不須要getter和setter,但必須爲public。若是設置@AccessType(PROPERTY),經過getter和setter方法訪問Entity的變量。 |
@JoinColumn | 指定一個實體組織或實體的集合。這是用在多對一和一對多關聯。 |
@UniqueConstraint | 指定的字段和用於主要或輔助表的惟一約束。 |
@ColumnResult | 參考使用select子句的SQL查詢中的列名。 |
@ManyToMany | 定義了鏈接表之間的多對多一對多的關係。 |
@ManyToOne | 定義了鏈接表之間的多對一的關係。 |
@OneToMany | 定義了鏈接表之間存在一個一對多的關係。 |
@OneToOne | 定義了鏈接表之間有一個一對一的關係。 |
@NamedQueries | 指定命名查詢的列表。 |
@NamedQuery | 指定使用靜態名稱的查詢。 |
1實戰mysql
1.1添加maven依賴包:spring
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency>
1.2配置文件:sql
在application.yml文件中添加以下配置數據庫
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/learnjava/dbgirl username: root password: root jpa: hibernate: ddl-auto: update show-sql: true database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/dbgirl username: root password: root jpa: hibernate: ddl-auto: create show-sql: true database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
高版本的mysql要用下邊的這個app
其中:maven
建立實體以及數據訪問接口spring-boot
首先來看一下實體類Person.javaurl
@Entity @Getter @Setter public class Person { @Id @GeneratedValue private Long id; @Column(name = "name", nullable = true, length = 20) private String name; @Column(name = "agee", nullable = true, length = 4) private int age; }
系統自動將數據表給咱們建好了。在數據庫中查看錶及表結構spa