导图社区 SpringDataJpa
关于SpringDataJpa的思维导图,Object Relational Mapping- 对象关系映射,简单的说:ORM就是建立实体类和数据库表之间的关系。
社区模板帮助中心,点此进入>>
互联网9大思维
安全教育的重要性
组织架构-单商户商城webAPP 思维导图。
个人日常活动安排思维导图
域控上线
西游记主要人物性格分析
17种头脑风暴法
python思维导图
css
CSS
SpringDataJpa
1.ORM思想
概述
Object Relational Mapping- 对象关系映射
简单的说:ORM就是建立实体类和数据库表之间的关系
类和表
属性和字段
建立映射关系,sql操作转为对象的操作
ORM 思想的框架
Hibernate 全自动的 ORM 框架
MyBatis 半自动的 ORM 框架
2.JPA
JPA概述
JPA的全称是Java Persistence API, 即Java 持久化API
JPA与hibernate的关系
JPA规范本质上就是一种ORM规范,不是ORM框架
hibernate 实现了JPA规范
也就是说,如果使用JPA规范进行数据库操作, 底层需要hibernate作为其实现类完成数据持久化工作。
jpa 入门案例
搭建环境
idea 快速搭建SpringBoot项目
pom.xml
表
cst_customer.sql
JPA中的主键生成策略
IDENTITY:主键由数据库自动生成(主要是自动增长型)
@GeneratedValue(strategy = GenerationType.IDENTITY)
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列
TABLE:使用一个特定的数据库表格来保存主键
AUTO:主键由程序控制
api
Persistence对象主要作用是用于获取EntityManagerFactory对象的
EntityManagerFactory factory= Persistence.createEntityManagerFactory(unitName);
EntityManagerFactory 接口主要用来创建 EntityManager 实例
EntityManager em = factory.createEntityManager();
EntityManagerFactory 是一个线程安全的对象(即多个线程访问同一个EntityManagerFactory 对象不会有线程安全问题)
EntityManager是完成持久化操作的核心对象
过调用EntityManager的方法完成获取事务,以及持久化数据库的操作
EntityTransaction是完成事务操作的核心对象
基本操作
增persist ,删remove,改merge,查find,延迟加载getReference
JPAUtil
JPQL
JPQL代表Java持久化查询语言。
与原生SQL语句类似,通过类名和属性访问,而不是表名和表的属性。
案例
3.Spring Data JPA
可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。
Spring基于Spring Data框架对于JPA规范的一套具体实现方案,使用Spring Data JPA可以极大地简化JPA 的写法
接口
JpaRepository
JpaSpecificationExecutor
只需要写dao接口,不需要实现类。
创建一个Dao层接口,并实现JpaRepository和JpaSpecificationExecutor
提供相应的泛型
增删改查
增-save(bean)
删-delete(id)
改-save(bean)
查-findOne(id) , findAll()