功能 | MyBatis | Hibernate |
---|---|---|
开发速度 | 上手容易 | 相对掌握困难 |
开发工做量 | 手写SQL语句 | 也能够手写SQL语句,但破坏了Hibernate封装和简洁性 |
扩展性 | 由于是手写SQL,全部扩展性好,但迁移性差 | 数据库关系关联都在XML中,因此HQL对是什么数据库不关心 |
移植性 | 很差,针对不一样的数据库写不一样的SQL | 较好 |
一级缓存 | SQLSession | Session缓存 |
二级缓存 | 在每一个具体的表-对象映射中进行详细配置 | 在SessionFactory生成的配置文件中进行详细配置, 而后再在具体的表-对象映射中配置是那种缓存 |
Hibernate与MyBatis均可以是经过SessionFactoryBuider由XML配置文件生成SessionFactory,而后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。数据库