java中的orm框架怎么理解?
1个回答
展开全部
hibernate和ibtas(mybatis)是为了解决不同问题而出现的。
hibernate是从对象的角度去看数据库,所有数据库层面的表在hibernate看来都是一个个对象,若是对象自然就有一对多,一对一等等关系。hibernate在对象层面完全封装了数据库层面的操作。所以它是一完整的ORM工具。最大的好处就是开发人员能通过很少的代码量就完成数据库层面的操作,大大提示了开发效率,不需要去写很多JDBC代码。
但是数据库毕竟不能只当做对象来看来,它有自己的组织方式,有自己的索引机制,当数据库量到一定程度的时候,hibernate就会相当吃力,因为当通过对象的方式来组织对象之间的关系,就会导致映射到数据库层面的SQL会非常的复杂。
恰恰这种复杂并不是数据库执行引擎所期待的时候,就会导致各种慢查询,故后来出现了ibtas(mybatis)这种半自动化的方式来解决性能问题。同数据库层面的交互还是通过具体的SQL,但是提供了一种机制来简化发的工作量,也就是写JDBC的工作。
现在的主流基本还是ibtas(mybatis),特别是对于互联网应用来说,hibernate太过重了。
hibernate是从对象的角度去看数据库,所有数据库层面的表在hibernate看来都是一个个对象,若是对象自然就有一对多,一对一等等关系。hibernate在对象层面完全封装了数据库层面的操作。所以它是一完整的ORM工具。最大的好处就是开发人员能通过很少的代码量就完成数据库层面的操作,大大提示了开发效率,不需要去写很多JDBC代码。
但是数据库毕竟不能只当做对象来看来,它有自己的组织方式,有自己的索引机制,当数据库量到一定程度的时候,hibernate就会相当吃力,因为当通过对象的方式来组织对象之间的关系,就会导致映射到数据库层面的SQL会非常的复杂。
恰恰这种复杂并不是数据库执行引擎所期待的时候,就会导致各种慢查询,故后来出现了ibtas(mybatis)这种半自动化的方式来解决性能问题。同数据库层面的交互还是通过具体的SQL,但是提供了一种机制来简化发的工作量,也就是写JDBC的工作。
现在的主流基本还是ibtas(mybatis),特别是对于互联网应用来说,hibernate太过重了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询