• mybatis学习7-传统dao层开发


    前言

    mybatis官方推荐使用mapper代理方式开发,程序员不用编写mapper接口实现类,

    使用mapper代理方法时,输入参数可以使用pojo包装对象或map对象,保证dao的通用性;

    传统的dao层开发容易出现硬编码的问题。

    一、传统DAO层开发:

    mybatis传统DAO层开发存在的问题:
    1.dao接口中存在大量模版方法,增加工作量。

    2.调用sqlSession方法时将statement的id硬编码了

    3.调用sqlSession传入的变量,由于sqlSession方法使用泛型,即使变量类型传入错误,在编译阶段也不报错,不利于程序开发。

    二、mapper代理开发Mapper接口:

    mapper代理开发和传统开发主要的区别在于
    1. 接口不用实现
    2. mapper文件的namespace有意义,必须与mapper接口类路径一致。
    3. Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
    4. mapper接口方法名的输入和输出参数必须和mapper.xml中定义的类型一致。

    其实学习完mapper代理开发之后,可能你还存在一个疑问,就是返回的结果如果是list,代理内部会怎么判断?

    • 代理内部会自动判断,如果返回list那么就调用sqlsession的selectlist方法,如果是对象,就调用sqlsession的selectone方法。

    总结:mapper代理开发不用写实现类,节省了我们的代码量;mapper代理对象减少了我们的硬编码,使编码更加灵活。

    ---------------------------------------------------------------------------------------------------------------------------------------------------

    下面是一个编写dao层实现类Mybatis的执行过程

    参考:https://blog.csdn.net/changyinling520/article/details/78102734

    爱生活,爱码字

    我是匆匆、我曾喂自己半年酒。

    好好生活吧,有缘或许相见。

  • 相关阅读:
    ARC管理内存(一)
    懒加载lazyload
    View的封装
    Plist文件与数据解析
    ubuntu16.04 安装python3.6
    ubuntu16.04 安装 wxPython方法
    第三章
    第二章
    协方差的意义
    内存区--Java
  • 原文地址:https://www.cnblogs.com/ccoonngg/p/11306604.html
Copyright © 2020-2023  润新知