`
farmerhan
  • 浏览: 11128 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

J2EE(JavaEE)开发中数据库框架的选择

阅读更多
J2EE(JavaEE)开发中数据库框架的选择

2008年4月8日
11:45

每当我们开始一个新的J2EE(JavaEE)项目,我们都有一个决策需要确定,就是我们选取什么方式来进行与数据库的交互。现在比较流行的方式有这么几种:Hibernate,Spring JDBC Template(或者就是JDBC), ibatis。在这些工具的选择过程中,很多朋友都在讨论哪种工具可以使我们少写多少代码,或者是这个工具多么流行做为一个衡量尺度。个人认为这样的思考很合理,只是我个人经过一些实践,还有一个因素应该考虑,这就是你准备如何提高数据库访问的效率。

从前看过不少帖子讨论不同方式存取数据库的性能比较。在我看来,其实上述每种方式都有合适的改善数据库访问效率的途径,哪种工具的选择与我们更喜欢哪种方式来提高效率有很大关系。

这里我谈谈几种方式为提高存取效率考虑的不同之处。

在我们直接使用JDBC或者Spring JDBC Template这样的方式时,我们通常喜欢自己控制sql语句,写出效率最高的sql语句。在数据库的设计中,也处处充满了为了提高sql语句效率的设计。如我们为了减少sql语句的数量,我们有很多冗余字段,我们偏向于一次操作产生能够照顾尽可能多的记录条数。这样的方式也确实能够为我们生产最有效率的sql语句带来最大的自主性。

在使用Hibernate这样的对象映射工具时,由于设计上应该多从对象的角度来考虑问题,所以很多操作都是以一行记录(通常被实例化成一个对象)为主体进行的,所以直观看起来似乎效率就会低下。比如我们要批量更新一批数据,用这种方式,应该是有N个对象,每个对象都执行了Update操作,本来一条sql就可以搞定的事情用了N条sql。但是有趣的地方在于这些工具都会与另外的技术共存,那就是数据缓存。通过数据缓存,这N个对象的操作可能都是在缓存中完成,并不是我们想象的那么多次sql。类似的例子,本来我们要根据一批ID获取一批记录,如果直接用jdbc的方式,我们可以一条带in的sql语句完成,但是在对象为主的设计里,通常是每个对象都产生一次查询,在这里,解决效率问题的答案仍然是缓存。所以在这种方式下,怎样建立缓存,缓存的命中问题就成为了解决效率问题的关键。

ibatis这样的方式走了一些折中路线,它可以使我们方便的完成O/R映射,并且为了解决人们控制sql的愿望,可以自己指定进行数据操作的sql语句。但是由于它的这种不彻底,通常cache机制就没有Hibernate这么完备了。


我认为没必要争论哪种方式更有效率,因为我们可以看到,每种方式都有改善效率的途径。只是看我们工作的环境和我们开发的倾向性而已。完善的O/R映射架构更适合与醉心于面向对象思考问题的人,而原始的JDBC方式更适合于能够最大发挥sql效率并且对此产生乐趣的人。
4
2
分享到:
评论
2 楼 hanjh_2008 2008-04-09  
用的jdbc啊
1 楼 roundlight 2008-04-09  
写的不错,收藏起来

相关推荐

    比较全的J2EE JavaEE 面试资料

    这份"比较全的J2EE JavaEE 面试资料"涵盖了ejb、servlet、jsp、java基础、struts、hibernate和spring等核心知识点,这些都是在Java EE面试中常见的考察点。 1. **Java基础**:这是所有Java EE开发者的基石,包括...

    j2ee.jar javaee.jar 1.3 1.4 5.0打包

    这个标题“j2ee.jar javaee.jar 1.3 1.4 5.0打包”表明我们正在讨论不同版本的Java EE库,这些库被封装在名为`j2ee.jar`的归档文件中,分别对应于1.3、1.4和5.0这三个不同的Java EE版本。Java EE(在早期被称为J2EE...

    j2ee6-javaEE6文档 手册 CHM

    以上只是Java EE 6众多特性和功能的一部分,通过深入学习“j2ee6-javaEE6文档 手册 CHM”,开发者可以更全面地了解和掌握这一强大的企业级开发平台。这个手册将涵盖所有这些内容,包括详细的API文档、教程示例和最佳...

    j2ee,javaee源文件

    Java EE(以前称为J2EE)是Java平台上用于构建企业级分布式应用程序的框架。它提供了一整套服务,包括安全性、事务处理、数据库访问、Web服务以及多种服务器端组件的管理。Java EE源文件通常包含了实现这些服务和...

    C#开发的J2EE,javaEE,javaMVC标准三层生成工具

    为了解决这一问题,一款由C#编写的J2EE、JavaEE和Java MVC标准三层生成工具应运而生,它能够帮助开发者快速生成所需的代码框架,显著提高开发效率。 该工具的核心理念是自动化生成JavaEE项目的底层代码,包括模型...

    JAVAEE,J2EE,WEBLOGIC 基础概念

    JAVAEE、J2EE和WebLogic是IT领域中与企业级Java应用程序开发和服务部署密切相关的三个核心概念。这里我们将深入探讨它们的含义、关系以及在实际应用中的作用。 首先,让我们来理解JAVAEE(Java Platform, ...

    j2ee,javaee,笔试,面试,题库汇总,笔试面试题库含答案

    Java EE,通常简称为J2EE,是Java平台企业版,是Oracle公司提供的一种用于构建分布式、多层的企业级应用程序的框架。它包含了多种服务、APIs和协议,旨在简化开发、部署和管理复杂的Web应用。Java EE的核心理念是...

    JavaEE(J2EE)课程设计,MyEclipse工程,内附SQLServer数据库及设计报告

    JavaEE(J2EE)是企业级应用开发的框架,它提供了一整套服务和组件,使得开发者能够构建可扩展、安全且具有高度交互性的分布式应用程序。本课程设计基于JavaEE,采用集成开发环境MyEclipse,这是一款强大的Java开发...

    j2ee中文帮助文档

    在IT行业中,掌握关键的技术框架和编程语言是至关重要的,特别是在J2EE(Java 2 Platform, Enterprise Edition)环境中。本资源包包含了四个关键的学习资料,涵盖了JavaScript、Java、Hibernate和MySQL这四大部分,...

    MyEclipse下JavaEE开发教程全套

    3. **第十六章 开发 EJB 应用.pdf**:EJB(Enterprise JavaBeans)是JavaEE中的服务器端组件,这部分将教授如何在MyEclipse中开发和部署EJB。 4. **第十三章 开发JPA应用.pdf**:Java Persistence API,提供了统一...

    基于J2EE开发的旅游交易平台

    J2EE是一种多层架构的开发框架,为开发分布式、面向服务的Web应用程序提供了全面的支持。该平台的核心功能是通过连接后台数据库来实现用户对旅游产品的查询、预订、支付等一系列操作。 在该系统中,J2EE框架扮演了...

    J2EE 全网最全 JAVAEE 中英对照 API

    本资源集合被称为“全网最全的JAVAEE中英对照API”,是一个极富价值的开发工具,为程序员在学习和工作中理解和使用Java EE接口提供了极大的便利。 首先,让我们了解一下Java EE API。API(Application Programming ...

    J2EE_SHH框架整合

    "J2EE_SHH框架整合"指的是将三个非常流行的开源框架——Struts2、Spring和Hibernate集成到一个项目中,以实现更高效、更灵活的开发流程。这三个框架分别负责不同的职责:Struts2处理MVC(Model-View-Controller)...

    J2EE项目开发常用的jar包

    J2EE项目开发中常用的jar包往往涵盖了一系列的核心技术和框架,这些库支持着应用程序的构建、部署和运行。下面我们将详细探讨一些常见的J2EE项目中使用的jar包及其作用。 1. **Servlet API**:servlet-api.jar是...

    javaee j2ee src 源码

    JavaEE和J2EE是企业级Java应用程序开发的框架,主要涵盖了网络应用服务器、Web服务、数据库连接、安全、会话管理等多个方面的技术。源码分析对于深入理解这些技术的工作原理至关重要。本压缩包提供了JavaEE和J2EE的...

    J2EE三大框架_笔记(个人收藏)

    在Java企业级开发中,J2EE(Java 2 Platform, Enterprise Edition)标准提供了一套完整的平台,用于构建可扩展、高性能、分布式和跨平台的应用程序。对于初学者而言,了解并掌握J2EE中的三大核心框架——Spring、...

    JAVAEE 5 中文文档内部版

    JAVAEE 5中文文档内部版提供了全面的Java企业级应用开发知识,涵盖了J2EE(Java 2 Platform, Enterprise Edition)向JAVAEE(Java Platform, Enterprise Edition)过渡时期的重要技术。此文档对于开发者来说是一份...

    J2EE开发技术手册

    **J2EE开发技术手册** 是一份专门为JavaEE程序员准备的综合指南,旨在提供全面的Java企业级应用开发知识。这份手册深入浅出地讲解了JavaEE平台的核心技术和最佳实践,帮助开发者提升技能,实现高效的企业级应用开发...

    glassFish+postgres+NetBeans j2ee开发指南

    PostgreSQL是一个开源的对象关系数据库系统,与GlassFish应用服务器的集成是JavaEE开发中一个重要的方面。 在开发过程中,文档提供了关于如何创建工程、构建EAR项目以及编写Web服务和客户端的详细指导。EAR项目是...

Global site tag (gtag.js) - Google Analytics