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