Spring Data JPA

2019-03-05  本文已影响0人  面包树_A

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

上一篇下一篇

猜你喜欢

热点阅读