MyBatis面试题

什么是MyBatis

MyBatis是一个半ORM框架(对象关系映射):通过XML注解的方式将Java对象映射到关系型数据库中的数据表中。它可以帮助开发者摆脱大量重复、繁琐的JDBC代码,从而更加方便地进行数据库操作。专注于SQL语句,不用关心JDBC操作的其他流程。

Hibernate是一个全ORM框架,底层都是基于JDBC封装的框架。

ORM全称为Object-Relational Mapping,即对象关系映射。它是一种编程技术,通过使用元数据(例如XML配置文件或注解)可以将面向对象的编程语言中的对象和关系型数据库中的数据进行互相转换和映射。

MyBatis优点:

1,封装JDBC,减小了我们java代码量

2,基于SQL语句编程,先对灵活。SQL语句写在XML里,实现SQL语句和java代码的解耦,提供了xml标签,来实现动态SQL语句,并可以重用(SQL代码块)

3,很好的与各种数据库兼容

4,能够与Spring很好的集成

5,提供映射标签,动态SQL语句

6,支持插件机制,开发者可以编写自己的插件,扩展其功能。

MyBatis缺点:

1,SQL语句的编写工作量较大,尤其当字段多、关联表多时。

2,SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

MyBatis的工作原理:(理解图)

 1,读取 MyBatis 配置文件mybatis-config.xml MyBatis 的全局配置文件,配置了 MyBatis 的运行 环境等信息,例如数据库连接信息。

2,加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。

3,构造会话工厂:通过 MyBatis 的环境等配置信息 SqlSessionFactoryBuiler().build(全局配置)
      构建会话工厂 SqlSessionFactory。
4,创建会话对象:由会话工厂SqlSessionFactory创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。
5,Executor 执行器 MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。
  1. SimpleExecutor:每执行一次update或select,就创建一个Statement对象。用完立刻关闭Statement对象。

  2. ReuseExecutor:执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建。用完后,不会真正关闭Statement对象,而是把Statement对象缓存起来供下一次使用。(默认使用)

  3. BatchExecutor:执行update(没有select,JDBC批处

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值