官网
http://www.mybatis.org/mybatis-3/zh/index.html
GitHub
https://github.com/mybatis/mybatis-3
简介
- MyBatis 本是 apache 的一个开源项目 iBatis。
- 2010年这个项目由 apache software foundation 迁移到了 google code ,并且改名为 MyBatis。
- 2013年11月迁移到 Github。
- MyBatis 是一款优秀的基于 Java 的持久层框架。
- MyBatis 是一个半自动化的ORM (Object Relationship Mapping) 框架 --> 对象关系映射
- MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。
- MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的实体类映射成数据库中的记录。
持久化
持久化是将程序数据在持久状态和瞬时状态间转换的机制
- 核心就是把数据(如内存中的数据)保存到可永久保存的存储设备中(如磁盘)。
- JDBC 就是一种持久化机制;文件 IO 也是一种持久化机制。
为什么需要持久化
- 内存本身的缺陷引起的,因为内存断电后数据会丢失。
- 有一些重要数据是无论如何都不能丢失的,但无法保证内存永不掉电。
- 内存过于昂贵,而且维持成本也高,需要一直供电。
- 即使对象不需要永久保存,也会因为内存的容量限制不能一直呆在内存中,需要持久化来缓存到外存。
持久层
- 完成持久化工作的代码块(如DAO层、Mapper层)。
- 现在的企业应用持久化的实现过程大多是通过各种关系数据库来完成。
- 持久层是一个独立的层级,用于处理数据,为了层级职责清晰,不建议在该层编写业务逻辑。
优点
复用
传统的 JDBC 操作,有很多重复代码块,会造成一定的代码冗余。
MyBatis 由于将 SQL 语句独立成了接口,可以增加代码的复用性,减少冗余代码。
轻量
MyBatis 很小巧,最简单安装只需要两个 jar 包和配置几个 SQL 映射文件就可以。
无侵入
没有任何第三方依赖,不会对应用程序或者数据库的现有设计强加任何影响。
灵活
提供 XML 标签,支持编写动态 SQL。
易于管理
SQL 语句写在 XML 里,便于统一管理和优化。
强大
通过 SQL 语句可以满足操作数据库的所有需求。
解耦
通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,易于维护和进行单元测试。
活跃
Mybatis 是国内最流行的 Java 持久层框架,可以和众多框架集成,有非常活跃的社区,版本迭代和维护也较为频繁。