Spring Data JPA :是spring提供了一个操作数据的框架,而Spring Data JPA只是Spring Data框架下的一个基于JPA标准操作数据的模块。
Spring Data JPA :基于JPA的标准对数据进行操作,简化操作持久层的代码,只需要编写接口就可以。
整合JPA:
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependenvy>
同时需要数据库驱动以及数据库连接池
<!-- mysql数据连接驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency><!-- 数据库连接池-->
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
然后配置一个全局文件,
application.properties --配置数据库信息,数据库连接池的信息,SpringDataJpa的配置信息eg:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true --在后台输出sql
Dao层:
/**
*参数一 T:当前需要映射的实体类名
参数二 ID:当前映射的实体中的ID(主键)的类型
*/
public interface UserRepository extends JpaRepository<T,ID>{
}
Spring Data Jpa 提供的核心接口:
Repository接口:
Repository接口使用–提供了方法名称命名查询方式,
提供了基于@Query注解查询与更新
例如模糊查找:需要使用Like作为后缀,否则是找不到结果的。
CrudRepository接口:
PagingAndSortingRepository接口:
JpaRepository接口:
JPASpecificationExecutor 接口:
tips:
@Table(name="t_users") ///告诉项目该注解下的类跟数据库什么表起映射作用 ,以及会创建这个表 以t_users做表名
@Id //作用在属性上--表明该属性为主键
@GeneratedValue(strategy=GenerationType.IDENTITY) //主键生成
@Column(name="id") //1:字段跟表字段起反射,2:创建这个实体类的表的时候 以这个name做为字段名