ORM、MyBatis和Hibernate 对比

一、对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/Rmapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的–“虚拟对象数据库”。
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
对象关系映射(Object-Relational Mapping)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。
传达性:数据库结构被任何人都能理解的语言文档化。
精确性:基于数据模型创建正确标准化的结构。 典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。

众多厂商和开源社区都提供了持久层框架的实现(JAVA系列),列举如下:
APACHE OJB、CAYENNE、JAXOR、JPA、HIBERNATE、IBATIS/MYBATIS
JRELATIONALFRAMEWORK、SMYLE、TOPLINK

二、hibernate VS mybatis
Mybatis优势
MyBatis虽然需要自己写sql和接口,开发工作量较大,但是它比起hibernate更加灵活,并且能够不断的优化sql,可以减少查询字段。
MyBatis容易掌握,而Hibernate门槛较高。

Hibernate优势
Hibernate设计理念是完全面向POJO(Plain Ordinary Java Object)的,所以使用者可以基本不用书写sql就能通过配置的映射关系完成数据库操作
Hibernate的优势在于能让程序开发人员更多的关注业务实现,而不是sql书写(框架会根据映射关系自动生成sql)
Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。
Hibernate对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。
Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。
Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

hibernate通常用于传统管理系统的开发,而mybatis广泛的应用于互联网开发(因为互联网需要灵活和可优化,毕竟一条sql的执行时间在优化前和优化后差别很大)

hibernate还存在n+1问题,控制不好会导致系统运行慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值