美文网首页
Mybatis工作原理

Mybatis工作原理

作者: Miki_Zhang | 来源:发表于2018-11-13 09:56 被阅读15次

Mybatis是一个映射的封装,他将代码块中的sql存在统一的xml文件也就是SqlMapper中。同时他将你执行的sql传参进行也就是执行变量进行了通配,然后映射到model中。

mybatis中的大致执行过程:通过factory方法获取sqlSession,通过MapperProxy代理到dao--执行底层数据库操作,===“据经过controller 再经过service 然后执行service中的相关方法并关联到mapper 再执行mapper.xml中的sql语句"

以下是JDBC和Mybatis的区别

JDBC:

(1) 加载JDBC驱动,建立并获取数据库连接,创建statement对象

(2) 设置SQL语句的传入参数

(3) 执行SQL语句并获取查询结果

(4) 对查询结果进行转换处理并将处理结果返回

(5) 释放资源

Mybatis:

(1) 连接池,dataSource,在驱动并连接的这个过程中优化并解耦

JDBC第一步其实从效率角度来看是不合适的,因为无论什么数据库都不可能支撑随机和庞大的连接数,而且必不可免存在连接浪费的情况,Mybatis封装了这些优化的方法

(2)统一sql存取到XML

如果代码写在java块中,在团队中很可能出现两个交叉的业务代码使用类似的sql,而开发人员本身没有交集,那么就会出现重复无用的SQL,而对SQL的修改代表对java文件的修改,需要重新编译和打包部署。

Mybatis将sql统一存取到xml中,就算业务交叉,由于统一配置的缘故,sql在xml中一目了然,两个跨组的程序员可以看到对方的sql,来判断自己是否需要重用,使用xml可以减少代码配置。

此外在java代码中拼写长SQL太恶心了

(3) 参数和结果集映射

sql的方式传入需要的参数,如果存在多条件“或类型”的查询,那么就代表你必须传参进行SQL拼接,就算使用xml的方式的方式也不行。要么每个业务独立配置xml中的sql,要么还是写入java代码中,或者以工具方式进行自动拼接

Mybatis使用映射的方式,方便model管理参数,同时以解析器的方式将参数动态凭借到sql,由于是model映射,查询结果可以统一映射,而且mybatis对查询结果集对了缓存处理,使得重复查询进行了进一步优化

(4)对多重复sql进行复用封装

比如模板方法,将常用sql模块化,直接调用。比如通用的save和getID之类的,只有表名和字段名有变化

相关文章

  • Mybatis 的工作原理

    Mybatis 工作原理 上图是Mybatis 工作原理,步骤如下: 读取 Mybatis 配置文件mybatis...

  • 面试官都爱问的Spring源码:Spring与Mybatis高级

    在介绍Spring整合Mybatis原理之前,我们得先来稍微介绍Mybatis的工作原理。 Mybatis的基本工...

  • Mybatis-2-1.SqlSession和Mapper

    Mybatis基本工作原理 (1)读取MyBatis的配置文件。mybatis-config.xml为MyBati...

  • Mybatis常见问题

    1.Mybatis工作原理创建SqlSessionBuilder 读取mybatis配置文件的信息 ,Sqlses...

  • Mybatis工作原理

    简单来说,他跟你直接用一个sqlUtil的实现是一样,只不过很多复杂的util优化的事情,提前有其他程序员做了。 ...

  • Mybatis工作原理

    Mybatis是一个映射的封装,他将代码块中的sql存在统一的xml文件也就是SqlMapper中。同时他将你执行...

  • Mybatis工作原理?

    本文转自大神----因为我是菜鸟 简单来说,它跟你直接用一个sqlUtil的实现是一样,只不过很多复杂的util优...

  • MyBatis 工作原理

    概览 我把MyBatis的工作原理分为以下几个方面或方面: 一.创建SqlSessionFactory对象 我Go...

  • mybatis工作原理

    我将其工作原理分为六个部分: 读取核心配置文件并返回InputStream流对象。 根据InputStream流对...

  • Mybatis的工作原理/源码解析

    Mybatis的工作原理/源码解析 稍后奉上,敬请期待。

网友评论

      本文标题:Mybatis工作原理

      本文链接:https://www.haomeiwen.com/subject/mahcfqtx.html