MyBatis简介

MyBatis 的前身是 iBATIS,是 Clinton Begin 在 2001 年发起的一个开源项目,最初侧重于密码软件的开发,后来发展成为一款基于 Java 的持久层框架。2004 年,Clinton 将 iBATIS 的名字和源码捐赠给了 Apache 软件基金会,接下来的 6 年中,开源软件世界发生了巨大的变化,一切开发实践、基础设施、许可,甚至数据库技术都彻底改变了。2010 年,核心开发团队决定离开 Apache 软件基金会,并且将 iBATIS 改名为 MyBatis。

MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 可以使用 XML 或注解进行配置和映射,MyBatis 通过将参数映射到配置的 SQL 形成最终执行的 SQL 语句,最后将执行 SQL 的结果映射成 Java 对象返回。

与其他的 ORM(对象关系映射)框架不同,MyBatis 并没有将 Java 对象与数据库表关联起来,而是将 Java 方法与 SQL 语句关联。MyBatis 允许用户充分利用数据库的各种功能,例如存储过程、视图、各种复杂的查询以及某数据库的专有特性。如果要对遗留数据库、不规范的数据库进行操作,或者要完全控制 SQL 的执行,MyBatis 将会是一个不错的选择。

与 JDBC 相比,MyBatis 简化了相关代码,SQL 语句在一行代码中就能执行。MyBatis 提供了一个映射引擎,声明式地将 SQL 语句的执行结果与对象树映射起来。通过使用一种内建的类 XML 表达式语言,SQL 语句可以被动态生成。

MyBatis 支持声明式数据缓存(declarative data caching)。当一条 SQL 语句被标记为 “可缓存” 后,首次执行它时从数据库获取的所有数据会被存储在高速缓存中,后面再执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库。MyBatis 提供了默认情况下基于 Java HashMap 的缓存实现,以及用于与 OSCache、Ehcache、Hazelcast 和 Memcached 连接的默认连接器,同时还提供了 API 供其他缓存实现使用。

MyBatis 官方 GitHub 地址为 https://github.com/mybatis 。在官方 GitHub 中可以看到 MyBatis 的多个子项目。在本书中,我们将学习以下内容。

除此之外还有大量和其他项目集成的子项目,如果有需要,学习本书内容之余可以自学其他相关的技术。