欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mybatis原理执行流程

程序员文章站 2022-03-05 14:52:57
Mybatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)持久层: 可以将业务数据存储到磁盘,具备长期存储能力,...

Mybatis介绍

  • MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
  • 持久层: 可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏,在断电或者其他情况下,重新开启系统仍然可以读取到这些数据。
  • 优点: 可以使用巨大的磁盘空间存储相当量的数据,并且很廉价
  • 缺点:慢(相对于内存而言)

为什么使用Mybatis

在我们传统JDBC中,我们除了需要自己提供SQL外,还必须Connection、Statment、ResultSet、不仅如此,为了访问不同的表,不同字段的数据,我们需要些很多雷同模板化的代码,闲的繁琐又枯燥
而我们在使用了MyBatis之后,只需要提供SQL语句就好了,其余的诸如:建立连接、操作Statment、ResultSet,处理JDBC先关异常等等都可以交给MyBatis去处理,我们的关注点于是可以就此集中在SQL语句上,关注在增删改查这些操作层面上.
并且MyBatis支持使用简单的XML或注解来配置和映射原生信息,将接口和java的POJOs(Plain Old java Objects,普通的java对象)映射成数据库中的记录.

1.什么是Mybatis

MyBatis是一个持久层ORM框架.它内部封装了JDBC,使得开发更加简洁,更高效.
MyBatis使开发者只需要关注sql语句本身,简化JDBC操作,不需要在关注加载驱动、创建连接、处理SQL语句等繁杂的过程.
MyBatis可以通过xml或注解完成ORM映射关系配置.

  • ORM框架:对象关系映射框架,Java的JavaBean (对象)与数据库的表(关系) 之间的对应关系。通过对象可以直接操作表。save(User) --> 用户数据进入表中

2.什么是ORM?

ORM的全程是Object Relational Mapping, 即对象关系映射.
描述的对象和表之间的映射.操作java对象,通过映射关系,就可以自动操作数据库.
在ORM关系中,数据库表对应Java中的类,一条记录对应一个对象,一个属性对应一个列.
常见的ORM框架:Mybatis、Hibemate

总流程:
根据配置文件(全局配置文件和sql映射文件)初始化configuration对象。
创建一个defaultSqlSession对象,包含Configuration及Executor(根据全局配置文件中defaultExecutorType创建对应的Executor)
DefaultSqlSession.getMapper拿到Mapper接口对应的MapperProxy
MapperProxy里有DefaultSqlSession
执行增删改查

  •  1.调用DefaultSqlSession增删改查
    
  •  2.创建StatementHandler
    (同时创建ParameterHandler,ResultSetHandler)
    
  • 3.调用StatementHandler预编译参数以及设置参数值
      使用ParameterHandler给sql设置参数
    
  • 4.调用StatementHandler增删改查
    
  • 5.ResultSetHandler封装结果  
    

Mybatis原理执行流程
参考:https://www.cnblogs.com/xiaoeyu/p/11592537.html

本文地址:https://blog.csdn.net/Strangerrainyday/article/details/108208097

相关标签: mybatis