关于DAO与mapper

关于DAO与mapper

想请问老师,mapper与DAO是指的同一个意思吗? 还是Java的实现称为DAO,xml挡案的映射才称为mapper呢? 请问该怎麽正确理解与区分?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小蓝 2022-09-08 15:37:28

同学你好~

1.DAO(Data Access Object)是指数据访问对象,在开发时通常是一个面向对象的数据库接口。例如使用MyBatis时,该框架会对接口进行实现,而实现类的对象就是DAO了。

只不过通常在编码时,并不会直接将接口实现并且创建对象,所以严格意义上讲,将接口称为DAO是不严谨的。但是实际工作中,已经约定俗成这样称呼了,因为都默认是指声明接口,框架自动创建对象。

2.mapper是指映射文件,通常包括xml、properties等以key-value形式存储数据的文件。例如使用MyBatis时,通过xml文件来指引框架如何去实现接口并创建接口的对象。

综上mapper实际上是一种将DAO接口进行实现的手段。

祝学习愉快~

  • 提问者 weixin_慕仙7241916 #1

    谢谢小蓝的回答,但我又有另一个问题是,我们先前OA系统的课中,在接口的部份命名为mapper,其实这个与约定俗成的DAO是同一个意思对吗? 


    例如下面两张图:

    https://img1.sycdn.imooc.com//climg/6319a14f0959714d06320235.jpghttps://img1.sycdn.imooc.com//climg/6319a13a09f72bcd13920326.jpg


    但是在resources中的xml文件也叫做mapper

    https://img1.sycdn.imooc.com//climg/6319a193091e896006110269.jpg

    2022-09-08 16:02:50
  •     同学你好~

        这里使用Mapper作为后缀,是为了告知代码的阅读者,这个接口未来是使用mapper的形式实现的,而不是直接使用Java代码实现的。这种方式是为了提高代码的可读性。

        而xml文件使用与Java接口相同的名字是为了在项目中能够快速的将接口和xml进行联系。在大型项目中,接口和mapper文件可能会高达上百个,此时如果命名一致,那么在搜索的时候就会简单很多。这是为了提高项目的可维护性。

        另外,在命名时,并没有明确的规定必须如何命名。命名的规范要看工作的公司是如何规范的,课程中老师使用的是没有规定时,约定俗成的一种命名方式。

        祝学习愉快~

    2022-09-08 16:21:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师