`

jdbc与hibernate的优缺点比较

阅读更多
一、Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。 二、Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。 三、Hibernate不能用来直接和Entity Bean做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是Entity Bean的替代者出现的,让我再列一次我已经列n次的框架结构: 传统的架构: 1) Session Bean <-> Entity Bean <-> DB 为了解决性能障碍的替代架构: 2) Session Bean <-> DAO <-> JDBC <-> DB 使用Hibernate来提高上面架构的开发效率的架构: 3) Session Bean <-> DAO <-> Hibernate <-> DB 就上面3个架构来分析: 1、内存消耗:采用JDBC的架构2无疑是最省内存的,Hibernate的架构3次之,EB的架构1最差。 2、运行效率:如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此Hibernate架构表现出最快的运行效率。EB的架构效率会差的很远。 3、开发效率:在有JBuilder的支持下以及简单的项目,EB架构开发效率最高,JDBC次之,Hibernate最差。但是在大的项目,特别是持久层关系映射很复杂的情况下,Hibernate效率高的惊人,JDBC次之,而EB架构很可能会失败。 4、分布式,安全检查,集群,负载均衡的支持 由于有SB做为Facade,3个架构没有区别。 四、EB和Hibernate学习难度在哪里? EB的难度在哪里?不在复杂的XML配置文件上,而在于EB运用稍微不慎,就有严重的性能障碍。所以难在你需要学习很多EJB设计模式来避开性能问题,需要学习App Server和EB的配置来优化EB的运行效率。做EB的开发工作,程序员的大部分精力都被放到了EB的性能问题上了,反而没有更多的精力关注本身就主要投入精力去考虑的对象持久层的设计上来。 Hibernate难在哪里?不在Hibernate本身的复杂,实际上Hibernate非常的简单,难在Hibernate太灵活了。 当你用EB来实现持久层的时候,你会发现EB实在是太笨拙了,笨拙到你根本没有什么可以选择的余地,所以你根本就不用花费精力去设计方案,去平衡方案的好坏,去费脑筋考虑选择哪个方案,因为只有唯一的方案摆在你面前,你只能这么做,没得选择。Hibernate相反,它太灵活了,相同的问题,你至少可以设计出十几种方案来解决,所以特别的犯难,究竟用这个,还是用那个呢?这些方案之间到底有什么区别呢?他们的运行原理有什么不同?运行效率哪个比较好?光是主键生成,就有七八种方案供你选择,你为难不为难?集合属性可以用Set,可以用List,还可以用Bag,到底哪个效率高,你为难不为难?查询可以用iterator,可以用list,哪个好,有什么区别?你为难不为难?复合主键你可以直接在hbm里面配置,也可以自定义CustomerType,哪种比较好些?你为难不为难?对于一个表,你可以选择单一映射一个对象,也可以映射成父子对象,还可以映射成两个1:1的对象,在什么情况下用哪种方案比较好,你为难不为难? 这个列表可以一直开列下去,直到你不想再看下去为止。当你面前摆着无数的眼花缭乱的方案的时候,你会觉得幸福呢?还是悲哀呢?如果你是一个负责的程序员,那么你一定会仔细研究每种方案的区别,每种方案的效率,每种方案的适用场合,你会觉得你已经陷入进去拔不出来了。如果是用EB,你第一秒种就已经做出了决定,根本没得选择,比如说集合属性,你只能用Collection,如果是Hibernate,你会在Bag,List和Set之间来回犹豫不决,甚至搞不清楚的话,程序都没有办法写。
分享到:
评论
1 楼 IsItLikeThat 2010-03-22  
哪种比较好些?你为难不为难?当选择多了之后,反而不知道选哪个了~

相关推荐

    jdbc与hibernate的优缺点比较(转载的精髓).pdf

    标题中的“jdbc与hibernate的优缺点比较”是一个关于两种主流Java数据库访问技术的讨论。JDBC(Java Database Connectivity)是Java中用于与数据库交互的一组接口和类,而Hibernate是一个对象关系映射(ORM)框架,...

    Struts,Spring,Hibernate优缺点

    Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...

    jdbc和hibernate的区别

    JDBC(Java Database Connectivity)和Hibernate是两种不同的Java数据库访问技术,它们各有优缺点,适用于不同的场景。 **相同点:** 1. **中间件角色**:两者都是Java平台上的数据库操作中间件,允许开发者通过...

    struts spring hibernate 优缺点分析.docx

    6. **JDBC和ORM支持**:与Hibernate等O/R Mapping工具集成,简化数据库访问。 7. **JNDI抽象**:提供对JNDI服务的抽象,便于切换服务实现。 8. **事务管理**:通过AOP实现声明式事务管理,简化事务控制。 9. **邮件...

    oracle分别使用jdbc和hibernate的例子

    标题 "Oracle分别使用JDBC和...学习这些知识点对于任何Java开发者来说都是必要的,特别是在处理企业级应用时,理解何时使用JDBC,何时选择Hibernate,以及如何有效利用它们与Oracle数据库的集成,都是至关重要的。

    基于Java 通用数据访问组件,基于mybatis、spring jdbc、hibernate.zip

    这三种技术各有优缺点。MyBatis轻量级且灵活,适合需要精细化控制SQL的场景;Spring JDBC则提供了更好的事务管理和异常处理;而Hibernate则在对象关系映射上做得非常出色,对于复杂的企业级应用更为适用。 在实际...

    分别使用Hibernate和JDBC操作数据库

    比较两者,JDBC适合简单的数据库操作,而Hibernate更适合复杂的业务逻辑和大型项目,因为它的ORM特性减少了大量手动SQL编写的工作量,提高了开发效率和代码的可维护性。在实际项目中,开发者通常根据需求和项目规模...

    hibernate和jdbc测试

    对于性能测试,可以比较使用JDBC和Hibernate执行相同任务的时间消耗,评估哪种方式更高效。同时,要关注内存使用情况,因为ORM框架可能会增加内存开销。 在进行测试时,使用单元测试框架,如JUnit,可以帮助自动化...

    JDBC-Mybatis-Hibernate实例.7z

    Java操作MySQL数据库是Web开发中的常见任务,而JDBC(Java Database Connectivity)是Java与数据库交互的基础。...同时,通过对比和实践,你还可以深入理解每种技术的优缺点,以便在未来的工作中做出明智的选择。

    Java-Hibernate-JDBC.rar_Author_ Author

    本文将深入探讨这两种技术,并对比它们的特点、优缺点以及适用场景。 Hibernate是一种强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过Hibernate,开发者可以使用面向对象的方式来...

    SSH框架的优缺点

    下面我们将深入探讨SSH框架的优缺点。 **一、Struts2** Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点并解决了其不足。其主要优点包括: 1. **灵活的拦截器机制**:Struts2使用拦截器来处理请求,...

    hibernate课程笔记.doc

    JDBC 的优缺点 **JDBC的优点**: - 直接与数据库交互,提供了简单且跨平台的接口。 - 具有高度灵活性,允许编写复杂的SQL语句。 **JDBC的缺点**: - 面向过程,无法充分利用面向对象编程的优势。 - 代码重复多,如...

    Hibernate学习笔记整理

    1. 说明:把 16,17,18 这三行代码的对象的状态称为临时对象,其特征是该对象与 Hibernate 没有关系。 2. 说明:当执行 19 行代码的时候,person 对象由临时状态转化成持久化状态,这个时候数据库没有对应的数据,...

    jdbc api tutorial and reference

    - **JDBC与Hibernate/MyBatis比较**:JDBC的低级操作与ORM框架的高级抽象,各自的优缺点。 - **JDBC在现代应用中的角色**:尽管ORM广泛使用,但在某些场景下,JDBC仍然不可或缺。 9. **案例实践** - **简单查询*...

    Hibernate 简单 PPT 总结

    - "2018-7-27-Hibernate-检索方式.pptx"可能涵盖了Hibernate的多种检索方式,如Query、Criteria、HQL等,以及它们的使用场景和优缺点。 - "04-2018-7-8-Hibernate-functiongtest.pptx"可能是关于函数测试和Hibernate...

    01_传智播客JDBC_jdbc的理论概述.rar

    7. **JDBC的优缺点**:JDBC的优点在于其通用性,适用于多种数据库,且API相对简单。然而,手动管理连接和事务可能导致资源浪费,且易出错。此外,性能问题也是一大挑战,尤其是在大量数据操作时。 8. **JDBC的升级...

    my-jdbc.rar_jdbc_jdbc Java_mybatis

    **JDBC的优缺点** 优点:JDBC提供了标准化的API,使得开发人员可以轻松地在不同的数据库之间迁移;它支持多种数据库,具有广泛的兼容性。 缺点:使用原生的JDBC编写数据库操作代码较为繁琐,需要手动管理连接和事务...

Global site tag (gtag.js) - Google Analytics