zoukankan      html  css  js  c++  java
  • SpringBoot中如何使用jpa和jpa的相关知识总结

    jpa常用的注解:

    注解解释
    @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实战

      1.1添加maven依赖包:

     <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配置文件:

    在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要用下边的这个

    其中:

    1. @Entity 是一个必选的注解,声明这个类对应了一个数据库表。
    2. @Table(name = "AUTH_USER") 是一个可选的注解。声明了数据库实体对应的表信息。包括表名称、索引信息等。这里声明这个实体类对应的表名是 AUTH_USER。如果没有指定,则表名和实体的名称保持一致。
    3. @Id 注解声明了实体唯一标识对应的属性。
    4. @Column(length = 32) 用来声明实体属性的表字段的定义。默认的实体每个属性都对应了表的一个字段。字段的名称默认和属性名称保持一致(并不一定相等)。字段的类型根据实体属性类型自动推断。这里主要是声明了字符字段的长度。如果不这么声明,则系统会采用 255 作为该字段的长度

    创建实体以及数据访问接口

    首先来看一下实体类Person.java

    @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;
    }

     系统自动将数据表给我们建好了。在数据库中查看表及表结构

  • 相关阅读:
    HTML基础 整理
    今天课堂总结
    课后习题
    JAVA的文件创建
    JAVA_输入输出流 异常处理
    12.23流水账号
    12.22 repeater 删除
    12.22 repeater 修改
    12.22 repeater 添加
    12.22 repeater 主页
  • 原文地址:https://www.cnblogs.com/haonanZhang/p/10729065.html
Copyright © 2011-2022 走看看