转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
数据库: JDO 能给我们带来什么         ★★★★

数据库: JDO 能给我们带来什么

作者:闵涛 文章来源:闵涛的学习笔记 点击数:854 更新时间:2009/4/23 10:31:41
  JDO规范的出台,给了传统的数据库应用,尤其是WEB方式的数据库应用一个新的机会,就是采用透明的中间件存储技术,减少传统开发的繁琐工作,提高开发和维护的效率,使我们能够应对新的互联网时代的日益迅速的需求变化。
从开发的角度来看,我们进行J2EE标准的Web应用开发时,如果涉及到数据库,一般具有一定经验的开发团队都不会采用JSP+JDBC的方式直接进行数据库操作,那样做一方面工程浩大,代码冗长,另一方面不易维护,危险性更大。一个简单的类似下面的语句:
resultSet = preparedStatement.execute();
...
preparedStatement = connection.prepareStatement(...);
  看上去没什么问题,但运行过程中会渐渐导致服务器死机,因为第二条语句前面少了一句 preparedStatement.close(),这样导致一些非JVM分配的内存永远无法回收(因为不归Java的垃圾回收机制管)。这种问题就对不是非常精通JDBC的程序员来说,是非常容易犯的,最重要的是,发生这种问题后,要查出其中的问题来,在代码量较大的情况下,你会发现这比联合国在伊拉克的核查工作复杂得多。
因此,有经验的开发团队会采用一些JavaBean来包装数据对象,这也是面向对象开发方式的需要。然而,就算是这种采用ValueObject来包装数据库数据的方式,依然存在以上的风险。
  这只是问题的一方面,在应用开发需求越来越多的情况下,传统的开发方式的效率和可维护性已经跟不上需要。很多公司对此只有两种解决方案:一是扩充招人,但这样涉及到开发水平和培训方面的成本问题;二是推迟或取消一些相对次要的开发任务,不过这样只会拖慢企业的发展。
  就是在这样的情况下,在国际上一些在这方面比较有经验的企业(如Sun,IBM等)才联合起来制定了JDO规范,以求让开发人员摆脱这方面的风险,从复杂而繁琐并且重复性很大的工作中解脱出来,以全新的完全面向对象的概念和业务意识来指导开发。JDO规范相对EJB来说,实现简单而性能出众,可大大节约公司的开发成本,因此得到很多公司的拥戴,尽管JDO1.0规范才公布不到一年,实现JDO规范的产品却如雨后春笋一般冒出来,比如美国(Kodo, FrontierSuite, FastObjects, etc.)、法国(Libelis LiDO)、南非(JDOGenie)、德国(JRelay)等厂商都有比较不错的产品(从中我们可以看出Java是一个比较开放、比较国际化的东西),另外,除了这些商业产品之外,还有一些见义勇为的壮士组成一些团队提供免费产品(Implementation),比如TJDO,Xorm,OJB等等。
下面我们就来看看JDO到底能给我们带来什么。


1、节约开发成本和时间。
  使用JDO,据对目前采用JDO的一些公司的统计,在开发中大概节约30%代码量,在维护中大概节约60%的工作。尽管这些数据来自JDO产品提供商,但从用户的角度来看,我认为这个数字并不过分。因为传统的开发方式代码量很大,导致开发人员多,开发时间长,人一多,相互的协调和沟通难度就大,开发时间长,开发人员的记忆力有限,前后代码的连贯性一致性也会受到影响。而采用JDO后,开发人员需要写的代码,主要是对数据层的包装部分,将大大减少,应用中的代码将主要集中在业务逻辑的处理上。俗话说,做得多,错得多,做得少,错得少。虽然有点消极,但也说明这个事实。当我们的手工代码变少后,出错的机率就会小很多,就算出错,也很容易查出来。当这些目标达到后,对JDO的一次性投入(比如购买JDO产品及相关培训),比起传统的开发开销来,就会显得微不足道。人力成本方面更是,原来三个人的工作,现在可以两个人做(因为工作量减少了),这就节省了一个人力的成本。


2、提高应用性能,尤其是Web应用。
  JDO厂商们都在利用多年的经验对底层数据库操作进行了大量的优化,而这些优化,一般的程序员由于经验和复杂性,都比较难做到,比如分布式缓冲、JDBC2.0和JDBC3.0中的一些面向性能优化的高级处理等等。因此,我们使用JDO产品的话,就可以利用这些由厂商提供的优化来提高服务器的性能。一般的厂商都会提供很多性能调节的参数,以针对不同的具体情况。


3、更灵活的业务逻辑。
  由于JDO解放了开发人员在数据底层的工作,他们可以集中精力考虑业务逻辑方面的事务,与需求方也更容易沟通,不会象原先一样,凡听到一个新的需求或变更时心里首先想到的是要加多少数据表,外键如何关联,越想越复杂,最终拒绝需求。采用JDO后,开发人员可以更快地实现业务逻辑,即使是做试验,也更加方便快捷,比如想对需求方提出两种不同的实现方案供效果比较,做起示范程序来就能迅速完成,而传统方式中能在同样的时间内完成一种就已经很不错了。当开发人员可以与需求方更好地沟通后,能更准确地理解需求,并且往往能提出比较专业的意见以改善业务逻辑,这样,对双方都能有更好的锻炼。


4、有利于开发团队的稳定。
  这里所说的稳定并不是说人员都比较固定,而是说开发中的角色比较固定,工作定位比较固定。比如关心性能的人负责映射层,他需要了解所采用的JDO产品的具体实现,以及如何将业务模型有效地映射到数据库上,而关心代码的人不用考虑这些细节,只需要在面向对象的数据模型(一般是一个或复杂或简单的实体类图)的基础上进行业务逻辑的实现。各有各的责任,分工更明确,整体工作效率得到大大提高。也就是说,采用JDO技术后,项目开发中更容易实现任务的纵向划分,不同类型的任务由不同的人做。而传统的方式中,项目一般只能实现横向的分工,一人做一块,每一块都是从界面到JavaBean再到数据库全包,如果纵向划分的话,因为任务之间难以确定接口规范,导致大家互相抱怨,从情绪上已经影响了开发的进展,这就是为什么很多项目一开始都设想得很好,而具体做的时候会互相牵连,导致“无工不拖”的局面。JDO技术,由于是一种比较实际可行的规范,便项目管理者能更好地分配工作任务,相互之间更容易“划清界限”。这样的方式下,项目开发就不易受人员流动的影响,因为:第一,如果走掉一名开发人员,只要补充一个人,或者将其工作分配到另一人身上,让他明确责任,对其它开发人员的影响并不大,不象以前“走一人瘫一块”;第二,如果工作量大了,需要新加入开发人员,对其的进入工作状态的培训比以前简单,因为越来越多的人会熟悉并精通JDO规范,就象会Java一样,有了这个基础,只要了解一下业务逻辑就可以进行开发了,这也是规范化的好处。就象很多外资企业一样,大家都是螺丝钉,人员流动性虽然大,但公司的发展却很稳定。


5、提供更多的个人发展机会。
  对开发人员来说,长年累月一成不变而又低效的工作方式是最大的杀手,是在扼杀自己的生命。采用JDO技术后,他们会看到原来开发可以如此容易,原来还有更多的业务逻辑方面的东西值得自己关注和投入精力。开发人员的思维会从底层的代码转移到高级的业务处理上来,因为自己的开发方式已经有规范化的质的提升。我估计,以后会出现JDO认证之类的概念,在万一的情况下的求职将会更加容易。毕竟一种规范带来的东西往往是多方面的改善。当开发人员更多地思考业务方面的问题后,对需求方的业务流程往往会有更规范的意见,从而引起双方的良性循环。以住的开发人员,常常会想为什么很多大公司的老板都不是做开发而是做业务的,以后自己的出路在哪里。其实,开发人员完全可以在开发过程中了解业务方面的内容,对自己以后的发展也有好处,并且,思维将会更加严谨,原则性更强。

  以上只是JDO所能带来的比较明显的几个好处,实际上还有更多的好处等待我们在使用中去发掘,去研究。在以后的文章中,我会从具体的开发过程入手,描述如何使用JDO来开发项目。

相关讨论:

 http://www.blueidea.com/bbs/NewsDetail.asp?id=1043092


[电脑应用]用C#动态创建Access数据库  [Web开发]asp 在线备份与恢复sqlserver数据库代码详解
[电脑应用]教你如何远程管理MSSQL数据库  [其他]关于数据库优化查询计划的方法总结
[电脑应用]Linux数据库大比拚  [JAVA开发]Java连接各种数据库的实例
[聊天工具]QQ IP数据库Build 0825 纯真版__天极Yesky  [系统软件]利用crontab系统每天定时备份MySQL数据库
[系统软件]备份与恢复Windows2003的AD数据库  [常用软件]活用FlashGet数据库
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台