mybatis和hibernate的区别

   都是ORM数据库框架

1.hibernate是全自动,而mybatis是半自动。

  • hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的javaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。

2.hibernate数据库移植性远大于mybatis

  • hibernate通过它强大的映射结构和hql(和sql类似)语言,大大降低了对象和数据库的耦合性,而mybatis由于需要手写sql,因此和数据库的耦合性直接取决于程序员sql的写法,如果sql不具通用性,而是用了其他数据库特性的sql语句的话,移植性会降低,成本很高。

3.sql优化上,mybatis比hibernate方便

  • mybatis的sql是写在xml中,hibernate的sql是自动生成的,无法直接维护sql,且hql不如sql强大,有局限性。灵活度上,hibernate不如mybatis。

4.hibernate拥有完整的日志系统,mybatis则欠缺一些

  • hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等。mybatis除了基本记录功能外,功能薄弱很多。

5.mybatis比hibernate需要关心很多细节

  • hibernate比mybatis配置复杂,学习成本也高。
  • mybatis的开发模式与传统jdbc区别很小,容易上手并开发项目,但是忽略细节前期bug会很多,因此开发出相对稳定的软件很慢,但是开发出软件很快。

 

mybatis:适用于小型且程序员能力较低的项目和人群使用

hibernate:不适用于拥有高负载的工程项目。

 

sql和hql形式上的区别

  •  sql: select 字段名...from table_name  where  字段名...   sql是直接对数据库表的操作
  •   hql:select 属性名...from 实体类 where 属性 条件 ...group by 属性order by属性。hql是对与表有映射关系的实体类的操             作,底层会再自动生成相应的sql。  

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值