zoukankan      html  css  js  c++  java
  • 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

    爱生活,爱码字

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

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

  • 相关阅读:
    Android之退出整个应用方法
    自定义popupwindow(解决位置控制困惑)
    日期格式转换
    简单用于测试的listview的视图
    复制res下文件进sd卡
    自定义九宫格式的弹出menu
    动画隐藏或者显示控件
    截取p3片段
    微信几种动画进入退出应用
    codeforce Round On Sum of Fractions + stl 的应用
  • 原文地址:https://www.cnblogs.com/ccoonngg/p/11306604.html
Copyright © 2011-2022 走看看