1、什么是MyBatis框架?
MyBatis是apache的一个开源项目iBatis,iBatis是MyBatis的前身。
简单来说,MyBatis是一个实现了数据持久化的开源框架,支持三种高级编程语言,Java、.NET、Ruby,MyBatis可以简单理解为对JDBC的一个封装框架。
2、ORM是什么
ORM:Object Relationship Mapping 对象关系映射,将面向对象的编程语言与关系型数据库进行映射,将 Java 对象与 MySQL 数据表中的记录进行映射,一个 Java 对象就会对应 MySQL 某张数据表中的某一条记录。
MyBatis 、Hibernate,Spring Data MongoDB 是一个 ORM 框架。
3、MyBatis 和 Hibernate框架
MyBatis: “半自动化”,相对于 Hibernate 提供的全面数据库封装机制而言。关注 Java 对象和 SQL 之间的映射关系。
Hibernate: “全自动”,实现了 Java 对象和数据库表之间的映射,以及 SQL 的自动生成和执行,结果解析。
JDBC 查询方式:
- 获取 Connection。
- 创建 SQL 语句: select * from user;
- 创建 Statement 对象来执行 SQL,并且将结果封装成一个 ResultSet 对象。
- 解析 ResultSet 对象,转化成 Java 对象。
Hibernate 查询方式:
- 加载 Hibernate 相关配置。
- 调用 Hibernate 提供的 API 获取对象。
MyBatis 查询方式:
- 需要在xml文件中配置 SQL 语句。
- 加载 MyBatis 相关配置。
- 调用 MyBatis 提供的 API 获取对象。
4、MyBatis特点
MyBatis 消除了几乎所有的 JDBC 代码和参数的手动设置以及对结果集的检索,MyBatis 可以使用简单的 XML 或注解用于配置和映射,通过接口将 Java 对象映射成数据库表中的记录。
优点:
- 大大简化了 JDBC 代码的开发。
- MyBatis 是最简单的持久化框架,小巧并且灵活,简单易学。
- MyBatis 非常灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL 写在 XML 中,从代码中彻底分离,降低程序的耦合性,便于统一管理和优化,可重用性高。
- 提供 XML 标签,支持编写动态 SQL 语句。
- 提供映射标签,支持对象与数据库的 ORM 字段关系映射。
缺点:
- SQL 语句的编写工作量较大,尤其是多字段、多表关联更是如此,对开发人员编写 SQL 语句的功底有一定要求。
- SQL 语句依赖于底层数据库,导致数据库移植性很差,一旦更换底层数据库,所有的 SQL 需要重写编写。