ORM框架

ORM简介
  • 对象-关系映射(Object/Relation Mapping,简称ORM),对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

  • 一般的ORM包括以下四部分:

    一个对持久类对象进行CRUD操作的API;  
    一个语言或API用来规定与类和类属性相关的查询;  
    一个规定mapping metadata的工具;  
    一种技术可以让ORM的实现同事务对象一起进行dirty checking, lazy association fetching以及其他的优化操作。

  • 目前流行的 ORM 产品:
    Java系列:Apache OJB 、Cayenne 、Jaxor 、Hibernate、iBatis、jRelationalFramework 、mirage、SMYLE 、TopLink
    .Net系列:NHibernate、NBear、Castle ActiveRecord、iBATIS.NET、 DAAB、 EntitysCodeGenerate、 EntityFormerWork、Linq to sql、 PetaPoco

    • Mybatis是sql mapping框架(持久层框架)而不是完整的orm框架,MyBatis需要自己写sql和接口(ibatis也是半自动的ORM),开发工作量较大,但是比起Hibernate更加灵活,并且能够不断的优化sql,可以减少查询字段。
    • Hibernate设计理念是完全面向POJO(Plain Ordinary Java Object)的,是全自动ORM,使用者可以基本不用书写sql就能通过配置的映射关系完成数据库操作。Hibernate的优势在于能让程序开发人员更多的关注业务实现,而不是sql书写(框架会根据映射关系自动生成sql)。
    • Hibernate数据库移植性远大于mybatis。 Hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而是用了含有数据库特性的sql语句的话,移植性也会随之降低。
    • Hibernate拥有完整的日志系统包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等。而Mybatis则除了基本记录功能外,功能薄弱很多。
    • Hibernate通常用于传统管理系统的开发,而Mybatis广泛的应用于互联网开发(因为互联网需要灵活和可优化,这往往意味着必须通过经过高度优化的sql语句才能达到系统性能设计指标,在这种情况下Mybatis会有更好的可控性和表现,可以进行细粒度的优化)。
  • ORM 框架简介
    MyBatis不是完整的ORM框架

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值