MyBatis入门
1. MyBatis介绍
MyBatis是一款优秀的持久层框架, 它支持自定义SQL、存储过程以及高级映射。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。
2. Mybatis核心组成
2.1 SqlSessionFactory
SqlSessionFactory是一个工厂类,用于创建SqlSession实例。
2.2 SqlSession
SqlSession是MyBatis中一个核心接口,它是用来执行SQL操作并管理数据库会话的。
2. MyBatis VS Hibernate
- Hibernate是全自动,而MyBatis是半自动
Hibernate完全可以自动生成SQL。而MyBatis仅有基本的字段映射,仍然需要通过手写SQL来实现和管理。 - Hibernate编码量小会减少开发周期,MyBatis编码量大会拖慢开发周期
Hibernate是对JDBC的高度封装,使用起来几乎不用写SQL,开发的时候,会减低开发周期.MyBatis需要自己写SQL,编码量较大,会拖慢开发周期。 - Hibernate数据库移植性远大于MyBatis
Hibernate通过它强大的映射结构和HQL语言,大大降低了对象与数据库(Oracle、MySQL等)的耦合性,而MyBatis由于需要手写SQL,移植性也会随之降低很多,成本很高。 - MyBatis入门简单,Hibernate入门比较难
MyBatis入门简单,即学即用。Hibernate学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要开发者的经验和能力都很强才行。 - SQL直接优化上,MyBatis要比Hibernate方便很多 由于MyBatis的SQL都是写在xml里,因此优化SQL比Hibernate方便很多。而Hibernate的SQL很多都是自动生成的,无法直接维护SQL;总之,写SQL的灵活度上Hibernate不及MyBatis。