浅谈 Spring Data JPA

Spring Data JPA

Spring Data JPA是基于Spring的ORMJPA规范的一个框架。使用该框架在项目中使用极短的代码就能进行增删改查操作。
只需要新建一个接口去继承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
在这里插入图片描述
。。。
还有很多方法如下图所示:
图片来源:https://www.jianshu.com/p/1d6f27f675bb
图片来源:https://www.jianshu.com/p/1d6f27f675bb

repository接口和数据库展示

在这里插入图片描述
在这里插入图片描述

参考文献

Spring Data JPA方法名命名规则:https://www.jianshu.com/p/1d6f27f675bb

写在最后

本文为小编个人理解并参考所作,参考文献已经放入本文中展示,如有错误或侵权请联系小编删除或修改!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章