SpringBoot中如何使用jpa和jpa的相關知識總結

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

  1. @Entity 是一個必選的註解,聲明這個類對應了一個數據庫表。
  2. @Table(name = "AUTH_USER") 是一個可選的註解。聲明瞭數據庫實體對應的表信息。包括表名稱、索引信息等。這裏聲明這個實體類對應的表名是 AUTH_USER。若是沒有指定,則表名和實體的名稱保持一致。
  3. @Id 註解聲明瞭實體惟一標識對應的屬性。
  4. @Column(length = 32) 用來聲明實體屬性的表字段的定義。默認的實體每一個屬性都對應了表的一個字段。字段的名稱默認和屬性名稱保持一致(並不必定相等)。字段的類型根據實體屬性類型自動推斷。這裏主要是聲明瞭字符字段的長度。若是不這麼聲明,則系統會採用 255 做爲該字段的長度

建立實體以及數據訪問接口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

相關文章
相關標籤/搜索