共计 609 个字符,预计需要花费 2 分钟才能阅读完成。
1. Mybatis 与 Hibernate 区别
1.1 表格比拟
性能 | MyBatis | Hibernate |
---|---|---|
开发速度 | 上手容易 | 绝对把握艰难 |
开发工作量 | 手写 SQL 语句 | 也能够手写 SQL 语句,但毁坏了 Hibernate 封装和简洁性 |
扩展性 | 因为是手写 SQL,所有扩展性好,但迁移性差 | 数据库关系关联都在 XML 中,所以 HQL 对是什么数据库不关怀 |
移植性 | 不好,针对不同的数据库写不同的 SQL | 较好 |
一级缓存 | SQLSession | Session 缓存 |
二级缓存 | 在每个具体的表 - 对象映射中进行具体配置 | 在 SessionFactory 生成的配置文件中进行具体配置, 而后再在具体的表 - 对象映射中配置是那种缓存 |
1.2 两者相同点
Hibernate 与 MyBatis 都能够是通过 SessionFactoryBuider 由 XML 配置文件生成 SessionFactory,而后由 SessionFactory 生成 Session,最初由 Session 来开启执行事务和 SQL 语句。
1.3 两者不同点
- 而 MyBatis 的劣势是 MyBatis 能够进行更为粗疏的 SQL 优化,能够缩小查问字段,并且容易把握。
- Hibernate 的劣势是 DAO 层开发比 MyBatis 简略,Mybatis 须要保护 SQL 和后果映射。
- Hibernate 数据库移植性很好,MyBatis 的数据库移植性不好,不同的数据库须要写不同 SQL。
- Hibernate 有更好的二级缓存机制,能够应用第三方缓存。MyBatis 自身提供的缓存机制不佳。
正文完