当前位置: 移动技术网 > IT编程>开发语言>Java > Mybatis原理执行流程

Mybatis原理执行流程

2020年08月01日  | 移动技术网IT编程  | 我要评论
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封装结果  
    

在这里插入图片描述
参考:https://www.cnblogs.com/xiaoeyu/p/11592537.html

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网