面试问题
1、请说说MyBatis和Hibernate的区别。
这个问题要简单一两句话说清楚不容易,因为以前学的用的都是MyBatis,而Hibernate只看别人用过,自己也没使用过,所以我就直接说了,MyBatis可以自己书写SQL,可以书写动态SQL,比较的灵活,而Hibernate不需要编写大量的SQL,使用起来比较方便,但缺陷也比较明显。
也不知道正确不,回来查了相关书籍,现记录一下参考答案:
答案:
MyBatis和Hibernate的增删改查对于业务逻辑层来说大同小异,但对于映射层而言Hibernate的配置是不需要接口和SQL,相反MyBatis是需要的。对于Hibernate而言,不需要编写大量的SQL,就可以完全映射,还提供了HQL对POJO进行操作,使用方便。
但Hibernate性能在多表关联超过3个的时候,会造成大量丢失。导致服务器的响应速度肯定要慢很多,对当今互联网的体验来说肯定不太好,而MyBatis就可以很好解决这个问题,因为它要自己编写SQL,使得性能提高很多,但是工作量也大了很多,所以有利有弊。
总结:
一句话:MyBatis性能较好,工作量大(要写SQL语句),Hibernate工作量小,但是性能较差。