MyBatis - 简介

1.什么是 MyBatis

MyBatis 是一款优秀的 Java 持久化框架,它不同于 Hibernate 等 ORM 框架,MyBatis 更像是一款数据持久化的工具,而不是针对整个数据库,像 Hibernate 一样,自动创建对象关系映射。因此,MyBatis 在一些数据表结构比较复杂,或者需要很多特殊的 SQL 查询的应用场景下表现更加出色。

MyBatis 支持自定义 SQL、存储过程以及高级映射。它免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2.MyBatis 特点

MyBatis 特点总结如下:

  1. SQL 映射简单

    MyBatis 的核心是 SQL 映射,基于 XML 配置的方式,它能够很方便地进行持久化映射。开发者可以直接在 XML 文件中配置 SQL 语句,MyBatis 会将这些 SQL 语句映射到 Java 对象中,然后进行数据的 CRUD。除了 XML 配置外,MyBatis 也支持注解方式动态生成 SQL 语句(基于注解的方式是我们常用的)。

  2. 灵活开发

    MyBatis 支持开发者在配置文件中引用多个 SQL 映射文件,不同的 SQL 映射文件之间可以引用相同的 SQL 映射语句,通过这种方式,开发者可以将 SQL 的模块化得更加细致,提高代码的复用性。MyBatis 的也支持 Java 模型和 SQL 语句的动态绑定,这很适合做一些动态构建查询的需求。

  3. 优秀的缓存机制

    MyBatis 的缓存机制设计很好,支持多级缓存和可插拔的缓存实现,使得数据的访问效率大大提高。MyBatis 默认支持两级缓存,一级缓存是会话级别的缓存,二级缓存是全局级别的缓存。开发者可以自定义缓存实现,并且 MyBatis 的缓存实现支持 LRU(最近最少使用) 策略和 FIFO(先进先出)策略的缓存机制。

  4. 插件特性

    MyBatis 还提供了插件特性,这是 MyBatis 优秀的扩展性的表现,插件可以在 SQL 执行的各个阶段进行代理增强,自定义 SQL 运行时所需的环境和附加功能。MyBatis 提供了许多插件接口,例如 Executor Plugin、 Statement Handler Plugin、 Result Set Handler Plugin 以及 Type Handler Plugin。

3.MyBatis 与 Hibernate

MyBatis 与 Hibernate 的简单对比:

MyBatis Hibernate
XML 方式配置映射 支持 支持
注解方式配置映射 支持 支持
自动生成目标 SQL 不支持 支持
复杂的 SQL 操作 支持 部分支持
SQL 优化难易程度 方便 不方便
底层数据库的可移植性 映射 SQL 与数据库绑定 有灵活的“方言”支持

猜你喜欢

转载自blog.csdn.net/ly1347889755/article/details/130995101