hibernate 是当前最流行的orm框架,什么是orm:对象关系映射;hibernate对数据库的关系做了较为完整的封装,我们只需要写好pojo到数据库关系映射表即可对数据进行持久化操作;什么是持久化操作,从我们开发的框架来说就是数据从内存中存储到数据库中就是进行了持久化操作。
mybatis也是当前较为流行的orm框架,他比hibernate操作起来要就简单很多,mybatis的着重点是在与数据库打交到,它持久化的数据只是数据库执行sql语句需要的参数,因此在数据的缓存安全方面不如hibernate,如果mybatis中存在脏数据很有可能也会被存到数据库中,而在hibernate中如果一个pojo类中存在脏数据持久化的时候会报异常。‘
1、这两者开发开的过程中会发现hibernate的数据复杂性很高,因此掌握起来比mybatis难度要高,hibernate在处理较为复杂的逻辑判断的时候会出现很复杂的hql查询语句,hibernate内部再将复杂的hql转化为原生sql,虽然这样优化起来很方便但是在发开过程中会出现响应时间过长的情况,因此要想也好hibernate的查询语句需要对hibernate的查询有较为深刻的认知,但是大部分的程序员并不具备这样的条件,因此会发现有些页面越维护起来相应时间越长,会经常达到不得不优化的地步。
mybatis是通过sql语句直接与数据库交互,因此从开发人员只需掌握基本的sql语句就可写出复杂查询,且反应一般会比hibernate要块。
2、hibernate有三级缓存,它支持多种二级缓存,session缓存sessionfactory缓存JVM缓存、只需在配置文件中即可打开,三级缓存(查询缓存)是基于二级缓存只上的,要想查询支持二级缓存就必须要打开查询缓存。
mybatis支持一个非常强大的查询缓存机制,她可以很方便的配置和定制。
3.hibernate功能强大,数据库易于移植和改变,如果对hibernate进行适当的封装,就会用相当简化的业务逻辑层处理数据。
mybatis简化了开发过程复杂的逻辑但是会出现一大堆sql,如果数据库变更了mybatis的变更要求也比较大,但是其易掌握度,快速开发是hibernate不可比的。