建设银行网站首页,上海有哪些互联网公司,制作购物网站教程,网站项目的设计制作什么是数据仓库层Repository#xff1f;
数据仓库接口的作用#xff1a;Repository原意指的是仓库#xff0c;即数据仓库的意思。Repository居于业务层和数据层之间#xff0c;将两者隔离开来#xff0c;在它的内部封装了数据查询和存储的逻辑。 Repository接口#xff…什么是数据仓库层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 JpaRepositoryCompany,String { // 指向对应的实体类CompanyString与主键的类型一致uuid string类型如果是自增列则填写int// 原生sql语句查询需要nativeQuerytrue如果为false则表示使用HQL语句Query(value select * from company where comname?1,nativeQuery true) // 精准查询ListCompany findByNativeSQL(String comname); // 表示传入一个公司名称comname那么就会把所有满足该名称的信息查询出来Query(valueselect * from company where comname like %?1%,nativeQuery true) // 模糊查询ListCompany findByNativeSQL1(String comname);//原生sql语句操作涉及到数据变动的如删除和更新必须加注解ModifyingModifyingQuery(value update company set comaddress ?1 where comname?2,nativeQuery true)void updateByName(String comaddress,String comname);}