mapper和Repository
时间: 2023-08-03 15:59:19 浏览: 89
@repository 是一种存储库模式,用于将数据访问与业务逻辑分离。它可以将数据访问代码与业务逻辑代码分开,使得更改数据访问层不会影响业务逻辑层。
@mapper 是一种数据映射模式,用于将对象与数据库表之间的映射关系定义。它可以帮助程序员简化对数据库的操作,使用对象而不是原始 SQL 语句来操作数据库。
相关问题
mapper和repository区别
Mapper和Repository是在软件开发中常用的两个概念,它们的作用和职责不同。
Mapper(映射器)主要用于将数据从一个领域对象(Domain Object)转换为另一个领域对象,或者将领域对象与数据库表进行映射。它的作用是实现数据的转换和映射,可以将数据库查询结果映射为领域对象,或者将领域对象转换为数据库操作所需的数据格式。通常,Mapper的实现是基于一些映射规则或者注解来进行的。
Repository(仓库)是用于对领域对象进行持久化操作的接口或类。它封装了对数据库的访问逻辑,提供了一些常见的持久化操作方法,比如增删改查等。Repository的作用是为领域对象提供数据访问的统一接口,并且屏蔽了底层数据库的具体实现细节,使得上层业务逻辑不需要关注数据库操作的具体细节。
简而言之,Mapper主要负责数据的转换和映射,而Repository主要负责数据访问和持久化操作。在实际应用中,Mapper和Repository通常会结合使用,来完成对领域对象的数据操作。
@Mapper @Repository
@Mapper和@Repository是两个不同的注解,用于不同的用途。
@Mapper是MyBatis的注解,用于声明一个数据访问接口,并与对应的SQL映射文件或注解一起使用,实现数据库查询功能。它是MyBatis框架提供的注解,与Spring框架无关。在编译时,@Mapper注解会动态生成代理类,实现数据访问接口中定义的方法。
@Repository是Spring框架的注解,用于声明一个Bean,表示该类是一个持久化层(DAO)组件。它是Spring框架提供的注解,在Spring管理的上下文中生成Bean。在DAO层的接口或实现类上使用@Repository注解,可以标识该类为数据访问组件,让Spring进行管理。
总结来说,@Mapper注解用于MyBatis的数据访问接口,而@Repository注解用于Spring的持久化层组件。它们在功能和用法上有所不同,就是为了满足不同的框架需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [【详细清晰】@Mapper和@Repository的使用和区别](https://blog.csdn.net/Sunshineoe/article/details/115447746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [@Repository 与 @Mapper的区别](https://blog.csdn.net/m0_51527921/article/details/125446670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文