zoukankan      html  css  js  c++  java
  • Spring-mybatis没有了XXXmapper.java和Dao的实现类还有Service的实现类

      对于刚学过框架的同学可能知道,mybatis有两种主要的配置文件:

      SqlMapConfig.xml(mybatis全局配置文件,名称不固定,用来配置运行环境(数据源、事务)

      XXXmapper.xml 主要用来配置sql语句

    我以前做过一个项目,大概的层次结构如下:

    从这个UML图中可以看出这个项目有和xml同名的接口,还有Dao层的实现类;

    然而最近实习的时候,带我们的导师给了一个项目,这个项目里面竟然没有mapper代理层和Dao的实现层

     

    从图中可以看出,向这种项目减少了XXXmapper.java和Dao层还有Service层的实现类。所以可以减少很多不必要的代码。

    使得代码结构很清爽。


    那么可能有的人会有跟我一样的疑问了,此时大家应该去看我的上一篇关于mybatis入门的教程

    mybatis入门介绍二

    里面讲到了XXXmap.xml文件中的最上面namespace的作用,按照第一种mapper代理的方式,namespace里面应该填写的是和XXXmapper.xml同名的XXXmapper.java接口的全限定名。

    而没有了mapper代理层之后,namespace填写的内容就是Dao层接口的权限定名了。也就是说,现在Dao接口充当了Mapper接口。Dao接口中的方法,对应着配置文件中的Sql的id。

    这样就省去了mapper接口这一层无脑的代码。

    同样的道理,Dao层的实现类里面也是无脑的代码,就是调用mapper接口里面的方法。同理,Service层的实现类XXXServiceImpl.java里面也是调用Dao接口的方法,别的一点事情都没做,知识调用方法。所以同样可以省略掉。

    这就解决了我的很多疑问。也就慢慢的理解了,什么是面向接口编程了。

  • 相关阅读:
    CoreData数据库浅析
    FMDB第三方框架
    SQLite浅析
    iOS开发工程师面试题(二)
    iOS开发工程师面试题(一)
    RunTime&RunLoop初见
    GCD定时器
    2016年4月21百度iOS实习生在线笔试题&编程题
    网络天荒地老之UIWebView&WebKit
    expdp/impdp
  • 原文地址:https://www.cnblogs.com/ilovessf/p/7272262.html
Copyright © 2011-2022 走看看