首页 > 编程知识 正文

jpa和hibernate的区别,hibernate的对象关系映射

时间:2023-05-04 05:15:05 阅读:173647 作者:474

Hibernate的优点:

1、hibernate是全自动的,hibernate完全可以通过对象关系模型实现对数据库的操作,具有完整的JavaBean对象和数据库映射结构自动生成sql。

2、功能强大,数据库相关性好,O/R映射能力强,需要写的代码少,开发速度快。

3、有更好的辅助缓存机制可以使用第三方缓存。

4、数据库可移植性良好。

5、hibernate具有完整的日志系统,hibernate日志系统非常健全,涉及sql记录、关系异常、优化告警、缓存提示、脏数据告警等广泛

Hibernate的缺点:

1、学习门槛高,精通门槛更高,程序员如何设计O/R映射,如何在性能和对象模型之间取得平衡,以及如何很好地使用Hibernate所需的经验和能力强

2、hibernate的许多sql是自动生成的,虽然有些hql查询无法直接维护sql,但功能并不像sql那么强大。 当您查看报告等变态需求时,hql查询将变得空虚。 这意味着hql查询是有限的。 hibernate还支持本机sql查询,但它很难使用,因为开发模式与orm不同,需要切换思维。 总之,在编写sql的灵活性上hibernate比不上mybatis。

Mybatis的优点:

1、使用方便,易于掌握,提供数据库查询的自动对象绑定功能,且持续良好的SQL使用经验,对于没有很高对象模型要求的项目来说,是相当完美的。

2、sql写在xml中,便于统一管理和优化,解除sql和程序代码的结合。

3、提供映射标签,支持对象与数据库orm字段的关系映射

4、提供对象关系映射标签,支持对象关系构建维护

5、提供支持动态sql创建的xml标记。

6、Hibernate速度快

Mybatis的缺点:

1、相关表多、字段多时,sql工作量大。

2、sql依赖数据库,数据库可移植性差。

3、由于xml中标记id必须是唯一的,因此DAO不支持方法重载。

4、对象关系映射标签和字段映射标签只是映射关系的描述,具体实现仍依赖于sql。

5、DAO层过于简单,对象组装工作量大。

6、不支持级联更新、级联删除。

7、Mybatis日志除基本记录功能外功能相当弱。

8、写动态sql时,调试不方便,尤其是逻辑复杂时。

9 .写动态sql的xml标签功能简单,写动态sql仍然受到限制,可读性很低。

摘自:https://www.cn blogs.com/Java catalina/p/6590321.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。