• 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

    爱生活,爱码字

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

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

  • 相关阅读:
    大型网站应用之海量数据和高并发解决方案总结
    反转二叉树
    Spring bean循环依赖
    死磕Spring AOP (学习持续更新中。。)
    Context 初始化流程
    ConcurrentHashMap
    2-MySQL高级-事务-基本概念(1)
    1-MySQL高级-视图
    11-python基础—格式化的两种方式
    22-MySQL-Ubuntu-备份与恢复
  • 原文地址:https://www.cnblogs.com/ccoonngg/p/11306604.html
Copyright © 2020-2023  润新知