- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SpringDataJPA使用指南
Spring Data JPA使用指南
广州中大凯旋电子科技有限公司
2012年12月14日
为什么选择Spring Data JPA?
对于我们目前的开发流程而言,要实现对数据库的操作,大部分是通过手工进行,过程主要分为以下几个步骤:
创建一个具有公共的增、删、查、改以及分页方法的基类DAO(HibernateDAO);
创建具体的业务实现DAO,继承基类DAO;
创建业务服务类service,调用DAO。
现在我们有了更好的方法来替代这些工作了,Spring Data JPA为我们提供了一个现成的dao层框架,不再需要我们自己去实现DAO层与数据库打交道的代码了。
Spring Data JPA提供了一整套数据访问层(DAO)的解决方案,致力于减少数据访问层(DAO)的开发量。它使用一个叫作Repository的接口类为基础,它被定义为访问底层数据模型的超级接口。而对于某种具体的数据访问操作,则在其子接口中定义。?public interface RepositoryT, ID extends Serializable {?}?
所有继承这个接口的interface都被spring所管理,此接口作为标识接口,功能就是用来控制domain模型的。Spring Data可以让我们只定义接口,只要遵循spring data的规范,就无需写实现类。?Spring Data JPA介绍
什么是Repository?
Repository(资源库)通过用来访问领域对象的一个类似集合的接口,在领域与数据映射层之间进行协调。这个叫法就类似于我们通常所说的DAO,在这里,我们就按照这一习惯把数据访问层叫Repository?Spring Data给我们提供几个Repository,基础的Repository提供了最基本的数据访问功能,其几个子接口则扩展了一些功能。它们的继承关系如下:?Repository: 仅仅是一个标识,表明任何继承它的均为仓库接口类,方便Spring自动扫描识别?CrudRepository: 继承Repository,实现了一组CRUD相关的方法PagingAndSortingRepository: 继承CrudRepository,实现了一组分页排序相关的方法?JpaRepository: 继承PagingAndSortingRepository,实现一组JPA规范相关的方法?JpaSpecificationExecutor: 比较特殊,不属于Repository体系,实现一组JPA Criteria查询相关的方法我们自己定义的XxxxRepository需要继承JpaRepository,这样我们的XxxxRepository接口就具备了通用的数据访问控制层的能力。?Repository所提供的基本功能
CrudRepository接口
这个接口提供了最基本的对实体类的添删改查操作T save(T entity);//保存单个实体?IterableT save(Iterable? extends T entities);//保存集合?T findOne(ID id);//根据id查找实体boolean exists(ID id);//根据id判断实体是否存在IterableT findAll();//查询所有实体,不用或慎用long count();//查询实体数量void delete(ID id);//根据Id删除实体void delete(T entity);//删除一个实体void delete(Iterable? extends T entities);//删除一个实体的集合void deleteAll();//删除所有实体,不用或慎用PagingAndSortingRepository接口
这个接口提供了分页与排序功能?IterableT findAll(Sort sort);//排序?PageT findAll(Pageable pageable);//分页查询(含排序功能)JpaRepository接口
这个接口提供了JPA的相关功能?ListT findAll();//查找所有实体ListT findAll(Sort sort);//排序 查找所有实体ListT save(Iterable? extends T entities);//保存集合void flush();//执行缓存与数据库同步T saveAndFlush(T entity);//强制执行持久化void deleteInBatch(IterableT entities);//删除一个实体集合简单条件查询按照Spring data 定义的规则,查询方法以findread、get开头涉及条件查询时,条件的
您可能关注的文档
最近下载
- 供应链基本情况调查表.docx VIP
- 【川教版】《生命 生态 安全》四上《温暖的家庭》课件.pptx VIP
- 主题班会《感恩老师》课件.ppt VIP
- 海洋测绘第8章海图讲解.ppt VIP
- 城镇道路机械清扫保洁作业要求.docx VIP
- 鼻出血的护理常规ppt课件.pptx
- 自然资源学原理绪论课件.ppt VIP
- 古代中医常用宫庭滋补药酒方.pdf VIP
- vaillant威能LN1GBQ20 – 36 VU CN 206 ‑ 356 5‑5,LL1GBQ20 – 36 VUW CN 206 ‑ 356 5‑5使用说明书.pdf
- 2025年阿拉善盟阿拉善左旗(中小学、幼儿园)教师招聘考试模拟试题及答案解析.docx VIP
文档评论(0)