• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hxlx
V2EX  ›  程序员

mybatis 为什么的 dao 为什么试用接口啊?这样子做的好处或者目的是什么啊?

  •  
  •   hxlx · Nov 23, 2015 · 4117 views
    This topic created in 3824 days ago, the information mentioned may be changed or developed.
    4 replies    2015-11-23 23:18:25 +08:00
    hxlx
        1
    hxlx  
    OP
       Nov 23, 2015
    mybatis 的 dao 为什么使用接口啊?这样子做的好处或者目的是什么啊?
    loshine1992
        2
    loshine1992  
       Nov 23, 2015
    减少大量重复的代码,由代理对象实现,开发者专注写 sql 就可以了。。
    hxlx
        3
    hxlx  
    OP
       Nov 23, 2015
    @loshine1992 初学者表示不懂啊,为什么这样子就可以减少重复的代码啊?什么代理对象啊?不用接口,开发者就不能专注写sql了吗??请原谅我的无知
    Gonster
        4
    Gonster  
       Nov 23, 2015
    @hxlx 只写 mybatis xml mapper ,你觉得没有接口你怎么调用它呢?

    接口不变可以用不同的实现,更换 mybatis dsl 的 XML mapper ,接口不变上层不受影响。还有就是有接口 mybatis 做 auto-proxy 比较方便吧。

    另外如果感兴趣的话可以考虑看一下 https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/binding/MapperProxy.java
    一些源码实现,想想你只写了接口和 xml ,你怎么能够通过调用接口就能使用到你没有写的 java 实现类,具体关键字应该是 auto proxy 还有字节码生成, jdk 反射包下有一套实现。还有一些其他的比如用 cglib 和 javassist 的实现等等。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3840 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:25 · PVG 18:25 · LAX 03:25 · JFK 06:25
    ♥ Do have faith in what you're doing.