1. Spring Data JPA概述 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。 它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率! Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现, 推荐使用Spring Data JPA + ORM(如:hibernate)完成操作, 这样在切换不同的ORM框架时提供了极大的方便,同时也使数据库层操作更加简单,方便解耦 2. Spring Data JPA的特性 SpringData Jpa 极大简化了数据库访问层代码。 如何简化的呢? 使用了SpringDataJpa,我们的dao层中只需要写接口,就自动具有了增删改查、分页查询等方法。 3. Spring Data JPA 与 JPA和hibernate之间的关系 JPA是一套规范,内部是有接口和抽象类组成的。hibernate是一套成熟的ORM框架,而且Hibernate实现了JPA规范,所以也可以称hibernate为JPA的一种实现方式 我们使用JPA的API编程,意味着站在更高的角度上看待问题(面向接口编程) Spring Data JPA是Spring提供的一套对JPA操作更加高级的封装,是在JPA规范下的专门用来进行数据持久化的解决方案。
Spring Data JPA的简单使用
https://gitee.com/code-gzy/spring-data-jpa-demo.git
查询方式
**dao接口需继承JpaRepository,和JpaSpecificationExecutor接口后,我们就可以使用接口中定义的方法进行查询** 1. 借助接口中的定义好的方法完成查询 findOne(id):根据id查询 2.jpql的查询方式 jpql : jpa query language (jpq查询语言) 特点:语法或关键字和sql语句类似 查询的是类和类中的属性 * 需要将JPQL语句配置到接口方法上 1.特有的查询:需要在dao接口上配置方法 2.在新添加的方法上,使用注解的形式配置jpql查询语句 3.注解 : @Query 3.sql语句的查询 1.特有的查询:需要在dao接口上配置方法 2.在新添加的方法上,使用注解的形式配置sql查询语句 3.注解 : @Query value :jpql语句 | sql语句 nativeQuery :false(使用jpql查询) | true(使用本地查询:sql查询) 是否使用本地查询 4.方法名称规则查询 *是对jpql查询,更加深入一层的封装 *我们只需要按照SpringDataJpa提供的方法名称规则定义方法,不需要再配置jpql语句,完成查询 * findBy开头: 代表查询 对象中属性名称(首字母大写) *含义:根据属性名称进行查询
方法名称规则查询
按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写。 框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。