blog.csdn.net/huyuyang6688/article/details/68948126 Spring经常喜欢做的事情就是封装,经过spring的封装结出的一大果实——SpringDataJPA 在SpringDataJPA下,只需要关注业务实现,无需关注持久层的逻辑,需要做的工作只是声明持久层的接口,并不需要亲自实现,实现接口这些工作SpringDataJPA都会帮你做好。 会自动根据findUserById方法的名字判断出来是根据id查询用户,根据findUserByIdAndName判断出是根据id和name查询用户,前提是接口名称需要遵守规范,SpringDataJPA 就规定了方法命名的规范,规定方法前缀(find、read、get)、字段命名格式(字段首字母大写)、关键字(And、Or……),详细规范可参考《Spring Data JPA方法定义规范》、《SpringDataJPA 源码地址:git@github.com:DannyHoo/SpringDataJPADemo.git ---- 【 转载请注明出处——胡玉洋《【SpringDataJPA】——SpringDataJPA
三、SpringDataJPA介绍1.
SpringData JPA只是SpringData中的一个子模块 JPA是一套标准接口,而Hibernate是JPA的实现 SpringData JPA 底层默认实现是使用Hibernate SpringDataJPA 只要我们的接口实现这个接口,那么我们就相当于在使用SpringDataJPA了。 只要我们实现了这个接口,我们就可以使用”按照方法命名规则”来进行查询。 SpringDataJpa(理解) 1、JPA是Java Persistence API,Java持久化API,是SUN公司推出的一套接口,一套标准 Hibernate是一个具体的ORM的持久层框架, Spring Data JPA既实现了Spring Data接口,又实现了JPA接口,也是为了简化持久层的开发 Spring Data JPA在项目里以spring-data-jpa这个jar存在 4、SpringDataJpa 原理,参考文档:“SpringDataJpa原理.docx” 核心:Spring AOP的思想 a.拿到SimpleJpaRepository的所有方法 具体执行操作的类SimpleJpaRepository
JPA:ORM(Object Relational Mapping); 1)、编写一个 实体类(bean)和数据表进行映射,并且配置好映射 关系; /** * Created by windMan on 2018/5/31 */ //使用JPA注解配置映射关系 @Entity//通知JPA这是一个实体类(和数据表映射的类) @Table(name="tbl_user")//@Table来指定和哪个数据表对应;如果不写默认表名就是user; public class User { @Id//这是一
1.1 已有项目增加 SpringDataJPA ☞ 添加依赖 一个 SpringBoot 项目想要使用 SpringDataJPA 必须先添加 SpringDataJPA 相关依赖,其次,SpringDataJPA ", age=" + age + ", sex=" + sex + '}'; } } ☞ repository SpringDataJPA 是 Spring 提供的一款对于数据访问层的框架,使用 SpringDataJPA,只需要按照框架的规范提供 DAO 接口,不需要实现类就可以完成数据库的增删改查、分页查询等方法的定义,极大的简化了我们的开发过程 在 SpringDataJPA 中,对于定义符合规范的 DAO 层接口,我们只需要遵循以下几点就可以了: ♞ 创建一个 DAO 层接口,并继承 JpaRepository 接口 ♞ 提供相应的泛型 1.2 使用 IDEA 创建 还是先创建 Springboot 项目,在填写好项目信息之后选择需要使用 SpringDataJPA 就会自动帮我们导入相关依赖。剩下的就和上面的一样了。 ?
Repository 接口是 Spring Data JPA 中为我我们提供的所有接口中的顶层接口,而且是个标志接口,Repository 提供了两种查询方式的支持 1)基于方法名称命名规则查询 2)基于@Query 注解查询
SpringBoot整合SpringDataJPA 1. 添加依赖 图片 2.
通过前面多篇文件对SpringDataJPA的介绍,相信大家应该已经对SpringDataJPA很熟悉了,使用起来还是蛮方便的,只是在整合的时候需要添加大量的配置文件,本文来给大家介绍下SpringBoot 整合SpringDataJPA的过程 ---- 其他JPA接口的实现参考此链接: https://dpb-bobokaoya-sm.blog.csdn.net/column/info/38759 -- -- SpringBoot整合SpringDataJPA 1.构建SpringBoot项目 通过IDEA创建一个SpringBoot项目。 com.alibaba.druid.pool.DruidDataSource # 配置jpa的相关参数 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true 这比我们在Spring中整合SpringDataJPA
本文介绍下SpringDataJPA怎么处理关联关系 关联关系处理 1.一对一 用户和角色设置一对一关系,通过外键关联。
EntityManager是JPA中用于增删改查的接口,而通常我们使用的是Hibernate-EntityManager
SpringDataJPA笔记(12)-Table注解详解 由于在实际使用中,有时候会遇到需要访问同一台服务器上别的数据库,但是又不想配置多数据源的情况,Table注解给我们提供了这种便利的操作 JPA
PagingAndSortingRepository 接口继承于 CrudRepository 接口,拥有CrudRepository 接口的所有方法, 并新增两个功能:分页和排序。 但是这两个方法不能包含筛选条件。
CrudRepository接口继承自Repository接口,所以Repository接口具有的功能CrudRepository接口都具有,同时又扩展了CRUD相关的功能
SpringDataJPA-Specification 使用Specification可以构建动态查询 原生的使用起来有点复杂,这里推介一个别人封装好的工具包 这里是github的地址 https://
SpringDataJPA-子查询 子查询也是一种视图查询 在数据库实际使用的时候,为了一些业务的设计,有些时候我们需要映射视图到实体,这个时候就可以使用Subselect注解来标注一个视图类 STEP1
SpringDataJPA笔记(11)-Transient注解 在 JAVA种,只要该类实现了Serilizable接口,然后在不需要序列化的属性前添加关键字transient,则序列化对象的时候会忽略
Spring和SpringDataJpa整合详解 一、概述 SpringBoot操作数据库有多种方式,如 JDBC直接操作:太古老了,没人愿意这样玩 Mybatis插件:比较时髦,比较适合sql复杂,或者对性能要求高的应用 </artifactId> <packaging>jar</packaging> <name>SpringDataJpa</name> <url>http://maven.apache.org</ ; import cn.pomit.springwork.springdatajpa.domain.UserInfo; @Service public class UserInfoService { ; import cn.pomit.springwork.springdatajpa.service.UserInfoService; @RestController @RequestMapping( "/springdatajpa") public class SpringDataJpaRest { @Autowired UserInfoService userInfoService;
单元测试 JpaSpecificationExecutor 1.创建接口 2.具体功能 2.1 单条件查询 2.2 多条件查询 2.3 分页 2.4 排序 2.5 分页排序 本文我们来介绍下SpringDataJPA 1.创建接口 /** * SpringDataJPA 实现JpaRepository * 泛型 第一个参数是对应的Pojo类型 * 第二个参数是注解的包装类型 */ public interface
1.1.2 SpringDataJPA 与 JPA 和 hibernate 之间的关系 JPA 是一套规范,内部是有接口和抽象类组成的。 1.1.3 整合 SpringDataJPA ☞ SpringBoot 整合 SpringDataJPA ☞ Spring 整合 SpringDataJPA 1.2 SpringDataJPA 的使用 1.2.1 使用接中口定义的方法 SpringDataJPA 致力于减少数据访问层的开发量,开发者唯一要做的就是声明持久层的接口,其他都交给SpringDataJPA来帮你完成。 只需要按照 SpringDataJPA 提供的方法命名规则定义方法的名称,就可以完成查询工作。SpringDataJPA 在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询。 中的分页查询,是其内部自动实现的封装过程,返回的是一个 SpringDataJPA 提供的 pageBean 对象。
1.2.4 SpringDataJPA JPA 是 Java Persistence API 的简称,中文名为 Java 持久层 API,是 JDK 5.0 注解或 XML 描述对象-关系表的映射关系