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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql handlersocket_HandlerSocket介绍[通俗易懂]

    mysql handlersocket_HandlerSocket介绍[通俗易懂]HandlerSocket的原理HandlerSocket的应用场景:MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。MySQL通过Handl…

    2022年8月24日
    5
  • JavaScript 引擎性能比较之一SpiderMonkey[通俗易懂]

    JavaScript 引擎性能比较之一SpiderMonkey[通俗易懂]1.下载https://people.mozilla.org/~sstangl/mozjs-31.2.0.rc0.tar.bz2bunzip2mozjs-31.2.0.rc0.tar.bz2tarxvfmozjs-31.2.0.rc0.tar2.构建https://developer.mozilla.org/en-US/docs/Mozilla/Projects/

    2022年10月8日
    2
  • 《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)「建议收藏」

    《SQLSERVER2012之T-SQL教程》T-SQL单表查询(二)

    2022年2月22日
    52
  • java长轮询「建议收藏」

    java长轮询「建议收藏」在服务端向页面主动推送消息的业务场景下,有长轮训和websocket两种思路。springboot和websocket使用:https://blog.csdn.net/u014203449/article/details/102902078现在看看长轮询:设想一个业务场景:A用户打开页面,要求实时刷新数据,B用户操作新增数据,A页面刷新。1.页面长轮询的做法是,A用户打…

    2022年10月14日
    4
  • 关于Platform SDK和Windows SDK

    关于Platform SDK和Windows SDK原文地址:http://www.cnblogs.com/holynn/archive/2009/04/29/1446498.html问题1:什么是WindowsSDK?WindowsSDK是用来支持32位和64位Windows平台以及.NET框架编程模型的开发包。WindowsSDK这个名字从WindowsVista开始使用,它包含以前PlatformSDK中的所有内容,同时包含

    2022年5月4日
    44
  • tableau新手教程_什么是tableau

    tableau新手教程_什么是tableautableau教程快速入门先基础了解你的数据先选数据源了解你的数据源字段含义、字段类型数据更新频率、数据量、波动频率范围决定了你的时间颗粒度例子:页面转化率(约小时级别+日级别)财

    2022年8月1日
    5

发表回复

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

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