hibernate和mybatis的区别

来源:互联网 发布:网络团队愿景怎么写 编辑:程序博客网 时间:2024/06/06 15:50

看过网上各种各样的区别,感觉多而乱,故想自己总结一下。

mybatis和hibernate都是做数据持久化的工具,都是JDBC的轻量级封装,主要区别就在于二者在SQL语句的处理上。

1、hibernate数据库移植性远大于mybatis。

hibernate对SQL语句进行了封装,对外提高了HQL语句,而mybatis需要手动书写SQL语句,通常不同的数据库之间SQL语句的书写存在差异,在进行数据库移植时,hibernate的移植性必定优于mybatis。                                        2、 sql直接优化上,mybatis要比hibernate方便很多

mybatis需要手动书写SQL语句,程序员可以很好的进行SQL优化。                                                                            3、hibernate是全自动,而mybatis是半自动。

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

hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性

sql是面向数据库表查询,格式:from + 表名 + where + 表中字段