公司准备搭建一个通用框架,以后项目就用统一一套框架了
以前只是听过jpa,但是没有实际用过
今天就来学习下一些简单的知识
什么是JPA
全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。
这个jpa只是一个规范。类似于定义一个接口,实现类还是得调用orm(如hibernate等)
jpa的作用
JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强
jpa的特点
- ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系
- API: 操作实体对象来执行CRUD操作
- 查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL语句紧密耦合
spring data jpa 是对jpa的封装
Spring Data Jpa则是在JPA之上添加另一层抽象(Repository层的实现),极大地简化持久层开发及ORM框架切换的成本。
这个才是我项目中用到的
底层还是用的是hibernate
因为框架用的springboot,再加上以前有人整合了一套 spring data jpa
所以就准备学习下
spring data jpa 大概学习的一个流程
一、 创建SpringDataJPA项目
1 导入依赖
2 配置数据源信息
3 编写Dao
4 user
5 编写测试代码
二、 Spring Data JPA 的接口继承结构
三、 Spring Data JPA 的运行原理
四、 Repository 接口
1 方法名称命名规则查询
2 基于@Query 注解的查询
2.1通过 JPQL 语句查询
2.2通过 SQL 语句查询
3 通过@Query 注解完成数据更新
五、 CrudRepository 接口
六、 PagingAndSortingRepository 接口
1 分页处理
2 排序的处理
七、 JpaRepository 接口
八、 JpaSpecificationExecutor 接口
1 单条件查询
2 多条件查询
2.1给定查询条件方式一
2.2 给定查询条件方式二
3 分页
4 排序
5 分页与排序
九、 用户自定义Repository接口 十、 关联映射操作
1 一对一的关联关系
2 一对多的关联关系
3 多对多的关联关系
内容太多了,这里就简单描述下大家知道是这些就行
主要还是要怎么用才是关键
spring data jpa 怎么用
第一种写法: findBy(关键字)+属性名称(属性名称的首字母大写)+查询条件(首字母大写)
这个只要定义个接口,后面spring data jpa已经帮你实现封装了
第二种写法基于@Query 注解的查询(JPQL)
上图直接跟hibernate的hql类似
第三种写法基于@Query 注解的查询(SQL)
sql 没啥好说的吧。。
第四种写法基于@Query 注解的更新、
正常就这几个就够了,分页的等实际用到更多的再整理下,先这样
简单描述下jpa,hibernate,spring data jpa关系
jpa 是规范
hibernate实现了这个规范
spring data jpa对hibernate进行了封装