关于spring-data-jpa的简单介绍

最近在做项目,所以时间比较紧凑,闲暇之余,将最近用到的spring-data-jpa技术整理一下,和大家分享.

这次鄙人就不来国际惯例了,直接介绍.

一:什么是JPA:

JPA是一套规范,不是产品.

JPA是 sun公司提出的java持久化规范,它的出现是为了简化现有的持久化操作,并整合orm技术.

查询语句:JPQL 面向对象而非面向过程的查询语言,避免程序和SQL语句紧密耦合.

二:spring-data-JPA

它是在JPA规范下提供了Repository层的实现.

关于spring-data-jpa的简单介绍_第1张图片

  CrudRepository:提供了简单的crud操作的方法.

  PagingAndSortingRepository 增加了分页和排序的方法

SimpleJpaRepository:提供了方法的实现.

我们可以直接继承接口,而不用写dao层的实现类去完成持久化操作.

关于spring-data-jpa的简单介绍_第2张图片

这是一个合同的持久化接口,直接继承JpaRepository就能实现基本的CRUD操作,利用的就是JpaRepository的实现类SimpleJpaRepository.

SimpleJpaRepository里面实现了许多方法,我下面列举几个出来.

关于spring-data-jpa的简单介绍_第3张图片

通过jpa创建query查询我学了两种方式

一是:解析方法名:

从网上抠图

关于spring-data-jpa的简单介绍_第4张图片

注意:返回的是对象不是object数组,只有利用原生sql语句查询的时候返回的是object数组

第二种是注解的方式  

@Query

@Modifying

@Param

如果使用update语句,必须用modifying配置在query上面

关于spring-data-jpa的简单介绍_第5张图片

创建query的策略:

有三种: 'create' :只通过解析方法名的方式创建

'use-declared-query' 这种我没去学习,所以不了解,以后在说

'create-if-not-found'  默认的, 如果没有@query,就用@namequery,如果还没有,就用解析方法名的方式

可以在spring的配置文件中 jpa-repository中设置策略.


Spring-data-Jpa的criteria查询

需要自定义的接口继承JpaSpecificationExecutor接口

我认为这里用到的是一个策略模式-->就是findAll(spec)方法和它相关的方法

自己去实现接口里面需要的算法--在我们这里就是自己去添加查询条件

可以添加多个查询条件 用 cb.and cb.or 

下图有我写的一个方法,里面利用到了criteria查询

关于spring-data-jpa的简单介绍_第6张图片关于spring-data-jpa的简单介绍_第7张图片


好了就简单介绍这里了,详细的API和内容可以参考大神们的作品.

今晚巴萨战皇马,巴萨必胜!!!!

下次我会介绍数据库三大范式和反三范式 

还有之前没有完成的内容会慢慢补全  忙啊.....









你可能感兴趣的:(ssh)