初级程序员一枚,第一次写总结便于自己查看,如果能能帮到各位也是极好的,有错误的话希望指正,不喜勿喷。。。
相同点:
1、都替换了Dao层
2、都对占位符做了不同的处理
3、数据库只认Sql语句,最终都转换为Sql语句
4、Hibernate和Mybatis底层都是对JDBC的封装;
5、都是SessionFactoryBuilder通过XML配置文件生成SessionFactory,再继续生成Session,然后由Session对Sql语句以及事务进行管理, SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
区别:
1、Hibernate 上手比较难;
2、Hibernate 比较庞大,初始化时间比较长;
3、Hibernate 对缓存的管理比较优秀;
4、Hibernate的Sql日志文件由于是系统生成的,所以相当难看;
5、如果说表中数据较大的话,要进行分表,那么Hibernate对其没有一点办法,因为Hibernate的Hql是根据pojo及属性来进行查询的,而Mybatis是原生的Sql语句;
6、Hibernate的插件比较多;
7、保存记录:Hibernate返回的是主键;Mabatis返回的是影响条数,对象的id;
8、Hibernate的查询使用的是类名和属性名;Mybatis使用的是原生的Sql语句;
9、二级缓存:都需要在配置文件里写cache标签,Mybatis需要将pojo序列化;