Spring Data JPA
Spring Data JPA是基于Spring的ORM,JPA规范的一个框架。使用该框架在项目中使用极短的代码就能进行增删改查操作。
只需要新建一个接口去继承JpaRepository接口,而不用去写一个实现类实现该接口,因为Spring会动态生成项目所需要的实现类进行注入,通过该接口就可以进行简单的增删改查,分页,排序等操作。
当然该接口支持简单的自定义查询方式,且有固定的查询方法命名规范。
ORM
ORM(Object Relational Mapping) 对象关系型映射。
是定义数据库和对象之间映射关系的元数据(定义数据库和表结构的信息),用于将对象信息保存到数据库中。
本质上是将数据从一种形式(对象)转化到另一种形式(mysql数据)。
JPA
JPA(Java Persistence API)是一种规范,是Java持久化API,JPA基于ORM,可以简化持久层代码,易于使用。
API:操作对象来进行增删改查操作。
Spring Data JPA常用接口
1 repository 是所有Spring Data JPA 常用接口的父接口,而且是空接口,统一类型,让组件扫描能进行识别。
2 CrudRepository 是1的子接口,可以进行增删改查操作。
3 PagingAndSortingRepository 是2的子接口,在2的功能上增加分页和排序功能。
4 JpaRepository 是3的子接口,在3的基础上增加一些实用功能,如:批量操作。(常用该接口)
5 还有一个用来条件查询的接口:JpaSpecificationExecutor,负责动态条件查询的接口。
public interface FriendRepository extends JpaRepository<Friend,Integer>,JpaSpecificationExecutor<Friend>{
}
查询方法命名规范
1:findBy+属性名(通过属性名准确查询)
select * from 表名 where 属性名=
2:findBy+属性名+Like(通过属性名模糊查询)
select * from 表名 where 属性名 like ("%"+属性名+"%")
3:findBy属性名And属性名(通过多个属性名查询)将and换成or就是将并列关系换成“或”的关系。
select * from 表名 where 属性名= ?and 属性名=?
4:findByOrderBy属性名2Desc(排序,Desc倒序,Asc正序。
如果仅仅对单属性排序(无属性1)findBy可省略不写。
select * from 表名 orderBy 属性名 Desc
findBy+属性名1+OrderBy属性名2Desc
select * from 表名 where 属性名1=? orderBy 属性名2 Desc
。。。
还有很多方法如下图所示:
repository接口和数据库展示
参考文献
Spring Data JPA方法名命名规则:https://www.jianshu.com/p/1d6f27f675bb
写在最后
本文为小编个人理解并参考所作,参考文献已经放入本文中展示,如有错误或侵权请联系小编删除或修改!!!