美文网首页
Spring Data JPA

Spring Data JPA

作者: 面包树_A | 来源:发表于2019-03-05 16:39 被阅读0次

    What

    ORM: Object Relational Mapping,描述数据对象和数据库的映射关系(eg, Hibernate)。
    JPA: Java Persistence API,是一种规范。
    Spring Data JPA:在JPA规范下提供了repository实现,但是使用哪种ORM(Hibernate……)框架是由自己决定。ORM也是基于JPA规范的,但是不同ORM不同实现,使用Spring Data JAP就可以灵活切换。
    JPQL: 面向对象而非面向数据库的查询语言,避免代码与SQL语言耦合太紧密。

    How

    1.在pom.xml中添加依赖

    spring-boot-starter-data-jpa包含spring-data-jpa、spring-orm和hibernate来支持JPA。

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
    2.在application中添加DataSource、Jpa配置
    #数据库连接信息
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://${MYSQL_HOST:172.17.0.1}:3306/test?useSSL=false
    spring.datasource.username=root
    spring.datasource.password=root
    
    #操作数据库时显示sql语句
    spring.jpa.show-sql=true
    
    #hibernate配置属性,第一次加载hibernate的时候建表,后续重新加载hibernate的时候再更新表结构,但是表结构更新了还是保留以前表里的记录
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
    
    3.创建实体

    创建实体通过ORM框架会映射在数据库中,可以通过@Table来定义对应的数据库表名@Column定义列明,否则按默认规则(驼峰命名改成下划线同时转换为小写)。

    @Entity
    #包含getter、setter
    @Data
    #默认表明就是entity_user
    public class EntityUser {
      @Id
      private String id;
     
      private String name;
    }
    
    4.创建数据访问接口

    定义接口继承自JpaRepository,用IDEA会自动联想出JPA已经支持的JSQL接口。

    public interface EntityUserRepository extends JpaRepository {
      EntityUser findByName(String name);
    }
    

    Reference

    JPA和Spring-Data-JPA简介
    Spring Boot中使用Spring Data JPA

    相关文章

      网友评论

          本文标题:Spring Data JPA

          本文链接:https://www.haomeiwen.com/subject/ctbjxqtx.html