数据仓库层Repository(CrudRepository、PagingAndSortingRepository、JpaRepository) 您所在的位置:网站首页 戊类厂房是什么意思 数据仓库层Repository(CrudRepository、PagingAndSortingRepository、JpaRepository)

数据仓库层Repository(CrudRepository、PagingAndSortingRepository、JpaRepository)

2023-02-16 06:29| 来源: 网络整理| 查看: 265

什么是数据仓库层Repository?

数据仓库接口的作用:Repository原意指的是仓库,即数据仓库的意思。Repository居于业务层和数据层之间,将两者隔离开来,在它的内部封装了数据查询和存储的逻辑。 Repository接口: 1、CrudRepository 在这里插入图片描述 2、PagingAndSortingRepository 在这里插入图片描述 3、JpaRepository 在这里插入图片描述 CrudRepository、PagingAndSortingRepository和JpaRepository三者的关系图如下所示: 在这里插入图片描述 综上所述,JpaRepository的功能最全、最强大,所以我们的数据仓库类继承JpaRepository 注意: 创建的数据仓库类是一个接口(不是抽象类、也不是普通类),针对这个接口添加注解@Repository。

Repository和DAO的区别

DAO是传统MVC中Model的关键角色,全称是Data Access Object。DAO直接负责数据库的存取工作,乍一看两者非常类似,但从架构设计上讲两者有着本质的区别:Repository是相对对象而言,DAO则是相对数据库而言,虽然可能是同一个东西 ,但侧重点完全不同。

JpaSpecificationExecutor

JpaSpecificationExecutor(用于特殊的业务场景如:既要有分页又要有排序,里面还有各种动态的查询,虽然此时通过JpaRepository能实现,但是JpaSpecificationExecutor更简单) 在这里插入图片描述

自定义接口继承JpaRepository /*公司数据仓库接口(创建的数据仓库类是一个接口(不是抽象类、也不是普通类),针对这个接口添加注解@Repository。)*/ //类只能继承单个,但是接口可以继承多个 @Repository public interface CompanyRepo extends JpaRepository { // 指向对应的实体类Company,String与主键的类型一致(uuid string类型),如果是自增列则填写int // 原生sql语句查询,需要nativeQuery=true,如果为false则表示使用HQL语句 @Query(value = "select * from company where comname=?1",nativeQuery = true) // 精准查询 List findByNativeSQL(String comname); // 表示传入一个公司名称comname,那么就会把所有满足该名称的信息查询出来 @Query(value="select * from company where comname like '%?1%'",nativeQuery = true) // 模糊查询 List findByNativeSQL1(String comname); //原生sql语句操作(涉及到数据变动的,如删除和更新,必须加注解@Modifying) @Modifying @Query(value = "update company set comaddress =?1 where comname=?2",nativeQuery = true) void updateByName(String comaddress,String comname); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有