Spring Data JPA 学习笔记
Spring Data JPA 学习笔记
南淮北安
好好学习
展开
-
学习 Spring Data JPA 一篇文章就够了(珍藏版)
文章目录一、学习目录二、扩展目录一、学习目录一篇文章带你搞懂为什么要使用 ORM一篇文章带你搞懂 JPA 和 hibernate一篇文章带你搞定 JPA 的基本使用一篇文章带你搞定 JPA 中的 API 对象(Persistence/EntityManagerFactory/EntityManager/EntityTransaction)一篇文章带你搞定如何抽取 JPAUtil 工具类二、扩展目录...原创 2020-07-20 22:28:38 · 1338 阅读 · 0 评论 -
一篇文章带你搞定 SpringData JPA 中的多表查询
文章目录一、对象导航查询二、对象导航查询的延迟加载三、对象导航查询的立即加载四、 解决 no Session 问题一、对象导航查询对象图导航检索方式是根据已经加载的对象,导航到他的关联对象。它利用类与类之间的关系来检索对象。例如:我们通过ID查询方式查出一个客户,可以调用Customer类中的getLinkMans()方法来获取该客户的所有联系人。对象导航查询的使用要求是:两个对象之间必须存在关联关系。查询一个对象的同时,通过此对象查询他的关联对象这里通过客户和联系人的案例来说明对象的导航查询:一原创 2020-07-20 22:09:22 · 705 阅读 · 0 评论 -
一篇文章带你搞定 SpringDataJpa 中的多对多的多表设计
前面已经学习了:一篇文章带你搞定 SpringDataJpa 中的一对多的多表设计本篇文章来学习SpringDataJpa 中的多对多的多表设计文章目录一、前期配置二、多对多放弃维护权三、级联添加三、级联删除一、前期配置案例:用户和角色(多对多关系)用户角色分析步骤:明确表关系:多对多关系确定表关系(描述 外键|中间表):中间间表编写实体类,再实体类中描述表关系(包含关系)用户:包含角色的集合角色:包含用户的集合配置映射关系(1)实体类 User:@Entity原创 2020-07-20 20:51:32 · 1264 阅读 · 0 评论 -
一篇文章带你搞定 SpringDataJpa 中的一对多的多表设计
文章目录一、表之间关系的划分二、在JPA框架中表关系的分析步骤三、JPA 中的一对多1. 表关系建立2. 实体类关系建立以及映射配置3. 测试一对多的关系4. 一的一方放弃维护权一、表之间关系的划分数据库中多表之间存在着三种关系,如图所示:从图可以看出,系统设计的三种实体关系分别为:多对多、一对多和一对一关系。注意:一对多关系可以看为两种: 即一对多,多对一。所以说四种更精确。明确: 我们今天只涉及实际开发中常用的关联关系,一对多和多对多。而一对一的情况,在实际开发中几乎不用。二、在JPA框原创 2020-07-20 17:55:36 · 3358 阅读 · 0 评论 -
一篇文章带你搞定 SpringDataJpa 中的 Specifications 动态查询
文章目录一、JpaSpecificationExecutor 接口二、使用 Specifications 完成条件查询1. 根据条件查询单个对象2. 多条件查询3. 模糊排序查询三、基于Specifications 的分页查询1. 没有条件的分页查询2. 有条件的分页查询四、方法对应关系的补充一、JpaSpecificationExecutor 接口有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA 中可以通过 JpaSpecifica原创 2020-07-13 11:27:14 · 1323 阅读 · 0 评论 -
一篇文章带你搞定 Spring Data JPA 的查询方式
文章目录一、使用 Spring Data JPA 中接口定义的方法二、使用JPQL的方式查询三、使用 SQL 语句查询四、方法命名规则查询一、使用 Spring Data JPA 中接口定义的方法在继承 JpaRepository,和 JpaRepository 接口后,我们就可以使用接口中定义的方法进行查询继承 JpaRepository 后的方法列表继承 JpaSpecificationExecutor 的方法列表 例如: /** * 测试统计查询:查询客户的总数量原创 2020-07-12 15:59:34 · 943 阅读 · 0 评论 -
一篇文章带你深入分析 Spring Data JPA 的原理
我们已经学习了 Spring Data JPA 的基本操作:一篇文章带你快速入门 Spring Data JPA本篇文章和大家一起分析下,它的运行原理。文章目录一、前期分析二、实现过程分析一、前期分析在上篇文章中,我们发现在自定义的 CustomerDao 中,并没有提供任何方法就可以使用其中的很多方法,那么这些方法究竟是怎么来的呢?答案很简单,对于我们自定义的Dao接口,由于继承了JpaRepository和JpaSpecificationExecutor,所以我们可以使用这两个接口的所有方法原创 2020-07-12 08:47:38 · 2681 阅读 · 0 评论 -
一篇文章带你快速入门 Spring Data JPA
前面我们已经学习了:一篇文章带你快速认识 Spring Data JPA本篇文章将带领大家快速入门 Spring Data JPA,学会它的基本操作文章目录一、搭建 Spring Data JPA 的环境1. 引入Spring Data JPA的坐标2. 整合 Spring 和 Spring Data JPA :applicationContext.xml二、编写实体类三、编写符合 Spring Data JPA规范的 Dao 层接口四、基本的 CRUD 操作一、搭建 Spring Data JPA原创 2020-07-11 21:20:12 · 868 阅读 · 0 评论 -
一篇文章带你快速认识 Spring Data JPA
文章目录一、Spring Data JPA 认识二、Spring Data JPA 的特性三、Spring Data JPA 与 JPA 和 hibernate 之间的关系一、Spring Data JPA 认识Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!Sprin原创 2020-07-11 15:17:07 · 505 阅读 · 0 评论 -
一篇文章带你搞定 JPA 中的复杂查询(JPQL)
前面我们已经学习了:一篇文章带你搞定如何使用 Jpa 完成数据库的增删改操作学会了 JPA 的基础操作,本篇文章将向大家讲述 JPA 中的复杂查询操作原创 2020-07-11 10:29:25 · 3344 阅读 · 0 评论 -
一篇文章带你搞定如何使用 Jpa 完成数据库的增删改操作
前面我们已经学习过:一篇文章带你搞定如何抽取 JPAUtil 工具类所以,本篇文章将基于工具类来实现数据库的增删改操作,保存操作也在上篇文章中讲述过,本篇文章也不在讲述一、根据 id 查询操作(find 方法实现) @Test public void testFind(){ //1.通过工具类获取entityManager EntityManager entityManager = JpaUtils.getEntityManager(); //原创 2020-07-11 09:18:21 · 1456 阅读 · 0 评论 -
一篇文章带你搞定如何抽取 JpaUtil 工具类
文章目录一、为什么要抽取 JpaUtil 工具类二、JpaUtil 工具类三、测试工具类一、为什么要抽取 JpaUtil 工具类前面我们已经学习了:一篇文章带你搞定 JPA 中的 API 对象知道由于EntityManagerFactory 是一个线程安全的对象(即多个线程访问同一个EntityManagerFactory 对象不会有线程安全问题),并且EntityManagerFactory 的创建极其浪费资源,所以在使用JPA编程时,我们可以对EntityManagerFactory 的创建进行优原创 2020-07-11 07:57:37 · 1205 阅读 · 0 评论 -
一篇文章带你搞定 JPA 中的 API 对象(Persistence/EntityManagerFactory/EntityManager/EntityTransaction)
我们已经学习了:一篇文章带你搞定 JPA 的基本使用知道了 JPA 的操作步骤:1.加载配置文件创建实体管理器工厂2.根据实体管理器工厂,创建实体管理器3.创建事务对象,开启事务4.增删改查操作5.提交事务6.释放资源接下来具体看下其中的 API 的功能特性。一、Persistence对象 //1.加载配置文件创建工厂(实体管理器工厂)对象EntityManagerFactory factory = Persistence.createEntityManagerFactory("my原创 2020-07-10 20:46:43 · 1165 阅读 · 0 评论 -
一篇文章带你搞定 JPA 的基本使用
本文通过保存客户信息到数据库表中的操作,来讲述 JPA 的基本操作文章目录一、环境搭建二、创建 persistence.xml三、编写实体类和数据库表的映射配置四、映射配置常用注解的归纳五、测试保存操作的执行六、注意事项一、环境搭建(1)创建 maven 工程(2)导入pom坐标<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <proje原创 2020-07-10 17:10:12 · 1729 阅读 · 0 评论 -
一篇文章带你搞懂 JPA 和 hibernate
文章目录一、认识 hibernate二、认识 JPA三、JPA 与 hibernate 的关系一、认识 hibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将 POJO与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。二、认识 JPAJPA的全称是Java Persistence API, 即Java 持久化原创 2020-07-10 09:12:11 · 3259 阅读 · 0 评论 -
一篇文章带你搞懂为什么要使用 ORM
文章目录一、什么是 ORM?二、为什么要使用 ORM一、什么是 ORM?ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。二、为什么要使用 ORM我们已经学习过:一篇文章带你搞懂 P原创 2020-07-09 22:43:50 · 1633 阅读 · 0 评论