使用IDEA开发 Springdata-jpa
1.首先创建一个Spring Boot项目
2、配置yml文件
application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: root
jpa:
show-sql: true #显示sql语句
hibernate:
ddl-auto: update
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
database: mysql #配置现在所使用的数据库
3、添加实体类
@Data 自动封装属性
@Entity注解用于生成数据库表,
@Table用于指定表的名称,
@GeneratedValue用于根据规则生成主键,
@Id表示这是一个主键。(还有一些标签可以自己去看一下springdata-jpa的官方文档)
Spring Data Jpa 可以根据实体类 在数据库里自动生成表(注意:yml数据里面首先需要一个数据库,然后必须连接)
package com.haungyu.springbootjpa.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @date :2019/6/3 21:39
* 学生类
*/
@Data
@Entity
@Table(name = "student")
public class Student {
@Id
private Long id;
private String name;
private String sex;
private Integer gradeId;
}
package com.haungyu.springbootjpa.entity;
import lombok.Data;
import javax.persistence.*;
/**
* @date :2019/6/3 21:42
* 年级表
*/
@Data
@Entity
@Table(name = "grade")
public class Grade {
@Id//主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//自动增长
private Integer gradeId;
private String gradeName
}
建好实体类后,启动项目
然后编写Dao层接口
DAO的接口:
Repository (空接口)
CrudRepository (增删改查)
PagingAndSortingRepository (分页和排序)
JpaRepository (扩展增删改查、批量操作)
JpaSpecificationExecutor:用来做负责查询的接口
Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,类似hibernate QBC查询
JpaRepository继承PagingAndSortingRepository,