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开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写。
框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。

Spring Data JPA_Spring

Spring Data JPA_Spring_02