mybatis 原理[通俗易懂]

mybatis 原理[通俗易懂]问题:mybatis是基于mapper接口开发的,mapper接口是执行SQL语句的呢?mybatis对mapper代码的包装主要包含了4个类。1.首先mapper需要将接口进行注册,并且需要获得mapper代理工厂(mapperregistry)mapperregistry类将mapper接口进行注册,并获取mapper代理工厂的工具类(mapperproxyfactory)2.加载mapp…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

问题:mybatis 是基于mapper接口开发的,mapper接口是执行SQL语句的呢?

mybatis 对mapper代码的包装主要包含了4个类。

1.首先mapper需要将接口进行注册,并且需要获得mapper代理工厂(mapperregistry)

mapperregistry类将mapper接口进行注册,并获取mapper代理工厂的工具类(mapperproxyfactory)

2.加载mapperproxyfactory

在代理工厂工具类中创建mappery 代理,关键代码如下

 public T newInstance(SqlSession sqlSession) {

    //在这里创建了MapperProxy对象 这个类实现了JDK的动态代理接口 InvocationHandler
    final MapperProxy<T> mapperProxy = new MapperProxy<T>(sqlSession, mapperInterface, methodCache);
    //调用上面的方法 返回一个接口的代理类
    return newInstance(mapperProxy);
  }

3.创建MapperProxy类对象。

MapperProxy类对象,通过invoke调用MapperMethod.excute()方法(这是对SQLsession的包装)

4.调用MapperMethod对象

调用MapperMethod对象的execute()方法执行具体的增删改查的SQL语句

参考https://blog.csdn.net/xiaokang123456kao/article/details/76228684 进行总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 比较字符串是否一样

    python 比较字符串是否一样在python中,判断两个变量是否相等或一样,可以使用==或者is来判断;判断不一样可以使用isnot。示例1.有时候两个字符串打印出来看着一样,但是判断却是False?如果两个字符串末尾有其他符号,比如回车‘\n’,print的时候无法发现的,所以需要strip:a=a.strip()b=b.strip()ifa==b: print&amp;amp;amp;quot;True&amp;amp;amp;quot;2.有时候==判断是Tr…

    2022年6月18日
    29
  • java中jbpm工作流_安卓框架

    java中jbpm工作流_安卓框架JBPM工作流框架应用导入jar包jbpm案例中获取配置文件,并配置本地数据库创建流程,并进行相关修改流程及流程内任务等的草操作importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importj

    2025年10月10日
    4
  • Xen VMM

    Xen VMMXen虚拟机即XenVMM(VirtualMachineMonitor),是剑桥大学计算机实验室开发的一个开源项目,它能够使用户创建更多的虚拟机,而每一个虚拟机都是运行在同一个操作系统上的实例。

    2022年9月22日
    3
  • 讲一个故事:Redis的默认端口是6379「建议收藏」

    讲一个故事:Redis的默认端口是6379「建议收藏」意大利歌舞女Alessia
    Merz,DDDD(懂得都懂) 手机九键Merz对应6379 感兴趣也可以看看这个有关redis开发人员相关的自述

    2022年9月2日
    5
  • linux终端定时器实验报告,定时器实验报告.doc

    linux终端定时器实验报告,定时器实验报告.doc定时器实验报告实验六 定时器/计数器一、实验目的⒈ 学会8253芯片和微机接口的原理和方法。掌握8253定时器/计数器的工作方式和编程原理。二、实验内容用8253的0通道工作在方式3,产生方波。三、实验接线图四、编程指南⒈ 8253芯片介绍8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。8253的功能用途:延时中断 实时时钟可编程频率发…

    2022年7月26日
    14
  • js动画和css3动画_js控制css动画

    js动画和css3动画_js控制css动画动画css动画js动画css动画js动画

    2022年10月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号