面试题新的--Mybatis和Hibernate的区别??

        首先,Mybatis和Hibernate都是持久层框架,狭义上来说,Mybatis和Hibernate不同点就是Mybatis属于半自动的映射工具,而Hibernate属于全自动的映射工具。具体的话有以下几点不同:

  1. 因为Mybatis是半自动的,所以在涉及数据库的相关操作时,需要自行编写SQL语句,而Hibernate的SQL语句则是自行生成。
  2. Hibernate数据库移植性要比Mybatis强,Hibernate提供了强大的映射结构和hql语言,大大降低了对象与数据库之间的耦合度。
  3. Hibernate的日志系统更加强大,包括SQL记录,关系异常,缓存提示,优化警告等,而Mybatis除了一些常用的日志功能外,对于其他方面的有所欠缺。
  4. Hibernate的缓存机制比Mybatis强。
  5. 对于SQL的直接优化,因为Hibernate的sql是自动编写的,所以不方便对SQL进行直接优化,虽然说Hibernate有hql,但涉及到一些较为复杂的查询时,如报表,hql就力不从心了,而Mybatis的sql是由我们手动编写,我们可以直接在编写时进行SQL优化,如使用表别名,不适用*,尽量使用索引,where代替having等操作进行SQL优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值