hibernate和mybaits比较
1) 设计思路,hibernate全面向对象映射框架ORM,mybatis半ORM映射框架。mybaits后半部分(和数据库)是面向过程,面向SQL,面向结果集ResultSet。
2) hibernate面向对象HQL(对象),mybatis面向SQL,使用SQL
mybatis : selectid,name form user user代表是表
hibernate: fromUser User对象,在映射文件中配置java类
select* from user
3) 性能比,mybatis。按需查询,hibernate按对象,把对象所有的属性值全都查出来。
4) hibernate对象性能进行极大优化,思路。hiernate一级缓存,二级缓存,懒加载
j2ee java2 Enterprise Edition企业级,EJB(你写一个javabean,按特殊规范,天然就是分布式,天然就是负载均衡),比较死板,麻烦。EntityBean天然分布式(如果有10个查询条件,组合100种,写100个EntiryBean。因为where不一样。新增,修改,删除),BusinessBean(查询)。正因为麻烦所以现在很少使用。
hibernate登上历史台
批量提交,jdbc新增数据直接进入数据库。hibernate新增后,没有立刻提交,放在一级缓存,用户不能触摸。当遇到特殊的动作,会自动提交(积累很多数据,批量,减少了数据库交互,)。
懒加载,例如:部门和用户,一对多关系。面向对象编程。查询部门,部门下面有子对象,接着把下面的所有用户查出,查询用户就要把部门查出来,查询部门就要把用户差出来。(死循环)。按上面需求,先把部门查出来就返回给用户,这里不光部门,还有部门关联用户,但是只有用户的id。要访问用户,因为有了id,按id再次发出请求去查询。你不调用就不查,你调用子对象的属性就去查询。
5) hibernate学习成本高,mybatis学习成本低
本文探讨了Hibernate与MyBatis两种持久层框架的区别。从设计思路、面向对象与SQL的角度解析两者特性,并分析了它们在性能上的差异及学习成本。适合希望了解这两种框架优缺点的技术人员。
1128

被折叠的 条评论
为什么被折叠?



