MyBatis简介

什么是MyBatis

Mybatis是一个持久层框架,他避免了几乎所有JDBC代码的手动设置和获取结果集的过程
通过使用xml配置或者注解和映射原始映射的方式将java接口,实体类或者普通对象映射 成数据库数据信息

为什么需要MyBatis

Mybatis是一个半自动持久层框架,对象关系映射,它能把数据保存在数据库中,也能从数 据库中读取数据,其实传统的JDBC也能实现,但是它的代码重复太多,比如数据库建立连 接,提取数据时封装,但是使用了Mybatis可以减少代码的重复,提高了开发效率。

MyBatis的优点和缺点
优点:

1.简单易学,省略了传统JDBC 50% 的代码量。

2.解除sql与程序代码的耦合,通过DAO层使得业务层和数据访问层的分离,提高了可维护 性,系统设计更加清晰,易维护。

3.把sql语句写在xml便于管理和优化,不会对程序或数据库有任何影响。

缺点:

1.编写SQL语句的工作量很大。

2.SQL语句依赖于数据库,导致数据库移植性差。

什么是持久层:

持久层是把数据保存在数据库或者是保存长时间的设备中(如硬盘)

为什么需要持久层

因为数据保存在内存中可能会断电,这样会数据丢失,所以把数据保存在持久化的设备上

MyBatis重要概念
Mapper配置:

基于XML的Mapper配置文件实现,现在可以用注解的方式或者MyBatis提供 的API来实现

Mapper接口:

自定义的一个数据操作接口,类似于Dao接口,早期我们需要自定义实现,现在MyBatis会为Mapper接口创建动态代理对象。

Executor(执行器):

MyBatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是MyB的一个核心接口

SQLSession:

MyBatis关键对象,是执行持久化操作的独享,类似于JDBCdConnection,SQLSession对象,完全包含了所有执行SQL操作的方法,它的底层封装了JDBC连接,可以使用SqlSession实例来执行被映射的SQL语句。

SqlsessionFactory:

MyBatis关键对象,它是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例通过SQLSessionFactoryBuilder对象类会的,而SQLSessionFactoryBuilder则从XML配置文件或一个预先预定的Configuration的实例构建

MyBatis工作流程

在这里插入图片描述

  1. 首先先假装Mapper配置的SQL映射文件,或者注解和原始映射。
  2. 创建会话工厂,MyBatis通过读取配置文件的信息来构造出会话工厂(SqlsessionFactory)
  3. 创建会话,根据会话工厂,MyBatis可以通过它来创建会话对象(SQLSession),会话对象是一个接口,该接口中包含了对数据库操作的增、删、改、查方法
  4. 创建执行器,因为会话对象本身不能直接操作数据库,所以它使用了一个叫做数据库执行器的接口来帮它执行操作
  5. 封装SQL对象,执行器将待处理的SQL信息封装到一个对象中(MappedStatement),该对象包括SQL语句,输入参数映射信息和输出结果映射信息
  6. 操作数据库,拥有了执行器和SQL信息封装对象就使用它们来访问数据库了,最后再返回操作结果,结束流程。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值