hibernate和mybatis的区别?

<<< 相同点 >>>

  1、Hibernate与MyBatis 都可以通过SessionFactoryBuilder 由 XML 配置文件生成SessionFactory, 然后再由SessionFactory 生成Session ,最后又 Session 来开启执行事务和SQL语句。 Session, SessionFactory ,SessionFactory的生命周期都是差不多的。

  2、二者都支持JDBC和JTA事务处理。

<<< 不同点 >>>

  1、MyBatis 可以进行更加细致的优化,可以选择性的查询需要的字段。同时对多张表操作时,MyBatis更加具有优势。

  2、MyBatis容易掌握,Hibernate 比较难以掌握,比如Hibernate虽然可以不写sql语句完成增删改查的操作,却需要按照既定的命名格式命名,学习成本高。

  3、Hibernate 对增删改查对象维护更加容易,效率也更高。

  4、Hibernate的数据库移植性更加好,可以通过修改方言完成数据库的更改,Hibernate将根据方言自动生成符合的SQL语句。MyBatis的数据库移植性不好,更改完数据库后需要去一个一个的更改每条SQL语句,耗时耗力。

  5、Hibernate有更好的二级缓存机制, 可以使用第三方缓存。MyBatis自身提供的缓存机制不够方便。

 

点赞