Java数据对象(JDO)的前世今生-Java基础-Java-编程开发

深入掌握Java数据对象(JDO)技术指南 JDO(Java Data Objects)是一种基于Java平台的持久化技术,它以对象的方式简化了数据持久化操作。JDO能够将Java对象转换为数据库中的数据,同时也能够将这些数据再次转换回Java对象,从而避免了传统数据访问技术中复杂的SQL语句编写。JDO的核心优势在于其高度的可移植性和对多种数据库的兼容性。ORM(Object-Relational Mapping)模型是现代数据库操作中的一项关键技术,它将对象模型映射到关系模型上。在JDO的背景下,这一概念尤为重要。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

  1 Java与数据库应用,JDBC

  Java发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器(J2EE), 再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTalk的一切皆对象的理念,摆脱了C 的历史累赘,简洁、自由的风格赢得了很 多 开发者的喜爱。从JDK1.1开始,Java成为实用的语言,而不是被人观望的新品秀;再经过JDK1.2的大量增强(尤其是Collection Framework),JDK1.3的 虚拟机效率提升(HotSpot),JDK1.4的融合百家之长(Logging、RegExp、NewIO等),现在已经是成熟稳重,颇显大家风范 。

  在企业 级市场上,大部分的应用建立在数据库基础上,数据是企业的生命,传统开发语言,包括面向过程的C、面向对象的C 、变种 Pascal的Delphi(非常棒的 语言,我用过四年),面向数据的PowerBuilder等等,先后在数据库开发的舞台上展现风姿。Java当然不会放过这些,于是, 出现了JDBC。在JDBC的帮 助下,Java也迅速渗入数据库开发的市场,尤其是面向企业服务器的应用开发。

  今天要谈的JDO,与JDBC有 非常密切的关系,尽管JDO并 不是只面向JDBC的数据对象包装规范。下面先简单地介绍一下JDBC。

  1.1 关系数据库之百家争鸣 ,ODBC

  关系数据库的 历史一言难尽,我只能从我的接触经历和所见所闻,简单地叙述一下。最早的时候,计算机还只在一些大型的研究 机关露面,并不是普罗大众可以涉及的。 苹果电脑将个人电脑引入民间,再随着IBM的PC标准开放,个人电脑逐步普及开来,加上微软的DOS操作系统, 以及Borland的Turbo系列语言开发环境, 老百姓发现原来电脑可以做这么多事!后来,出现了DBASE,一个简单的关系数据库系统,和SQL语言。后来 ,Borland看到了数据库的市场前景,推出了 Paradox(也是当今Delphi和C Builder中仍然使用的Paradox),一举占领了民用数据库的大部分江山,之 后,Borland干脆收购了Dbase,后来又购买 了InterBase,将数据库市场的领先优势一直保持到Windows3.0出现。这时候,微软在Windows1.0和2.0被人 痛骂之后顽强地推出3.0,以及更稳定的3.1和 Win32API,造就了个人电脑桌面操作系统的霸主地位,在Borland未警觉的情况下,购买了同样具有类Dbase 数据库技术的Fox公司,并迅速将其易用化, 形成了FoxBase,后来演变成FoxPro,逐渐超过了Borland,成为个人电脑数据库的大户。微软再接再励,为 简单易用而低负荷要求的数据库应用开发了 Access,赢得了广大开发人员的心。当然,同期的Oracle、Sybase、Informix等商用数据库凭专注于企业级数 据库技术成为高端的几位领军人物。微软当 然也想成为高端数据库供应商之一,于是自行开发一套面向企业级应用的数据库,不过很快项目夭折,微软不 甘心,购买了Sybase的底层TDS技术,包装 成了SQL Server,凭微软的高度易用性的特点,也占领了不少市场。

  当市场上出现众多的数据 库产品之后,Borland和微软都发现自己拥有 的数据库产品挺多,市场也不小,不同的产品给用户带来不同的配置任务,不利于所有产品的推广,于是,两 者纷纷开始制定数据库访问的规范,微软推出 了ODBC,其面向开发人员的亲和性,逐步获得了认可,同时,Borland纠集了IBM和Novell也推出了IDAPI数 据库接口规范,也就是今天BDE的核心,不过 后来Novell和IBM先后退出,只剩Borland独力支撑。不过Borland是一个技术实力雄厚的公司,其技术一向领 先于微软,BDE的性能比初期的ODBC不知道 要好多少倍,后来微软偷师学艺,把连接池等技术加到ODBC中,在Delphi3.0及其BDE在市场上风光无限的 时候,逐步赶了上来并有超过。直到今天 ,BDE仍是Borland的产品线上的数据库访问标准,而微软如果不是将ODBC和多数数据库的客户端内嵌进 Windows的话,估计BDE仍是市场的赢家。不过 ,微软是玩弄市场的老手,通过对操作系统的垄断,其数据库产品和ODBC标准终究占据了多数开发市场 。

  1.2 从optional pack到JDK的标 准API

  Java开始涉及数据库应用后,Sun就极力制定Java的数据库规范,JDBC API就是类 似ODBC一样,对数据库访问的底层协议进行最基 本的包装,然后形成一套统一的数据访问接口,数据库连接、SQL语句句柄、结果集,都带有ODBC的影 子。以方便配置为目的,Sun极力推荐完全瘦客户 端的TYPE 4型JDBC驱动,这是一个不需要安装数据库客户端的驱动规范,是现在使用最多的。当然,为 了保持与旧的数据库兼容,JDBC规范中包括了专 用于连接ODBC的TYPE 1驱动和需要安装数据库客户端的TYPE 2驱动,以及可以由厂商在数据库服务端 专门提供面向JDBC的服务的TYPE 3驱动。

  JDBC最早出现时,还不属于标准JDK的一部分,而是作为一个额外包提供下载。后来,随着 Java编写的数据库应用的的增多,和JDBC规 范本身的逐渐成熟,JDBC终于成为JDK1.1的一部分。

  JDBC目前最新的是3.0版本,还有正 在讨论中的4.0版本。实际上,在开发中使用得 最多的还是1.0中的API,2.0中主要增加了可双向滚动的结果集、更新批处理等提高可用性和性能的API,3.0 主要增加了连接池、可更新的结果集等特性。 4.0将在可管理性、连接池规范化等方面再做改进。

  2 面向对象与数据库

  现在的程序员,没有不知道面向对象的。 作为接近真实客观世界的开发概念,面向对象使程序代码更易读、设计更合理。在普遍存在的数据库应用领 域,开发人员对面向对象的追求从未停止过。从 八十年代开始,就有很多公司和研究机构在进行着面向对象与数据库结合的研究。

  2.1 SmallTalk、C与C 、Delphi-Object Pascal、 Java

  面向对象的语言最早有好几种雏形,IBM的SmallTalk是其中最为流行的,在 SmallTalk中,一切都是对象,一切都是类,它将面向对象 的概念发挥到了极致。面向对象的编程比起传统的面向过程的方式挺进了一大步,使人们认识到 :原来软件可以这样写。不过,由于计算机基本结构与底层 硬件体系和系统软件的限制,SmallTalk还不能在理想的性能前提下推广到普通的应用上,这一 点暂时限制了SmallTalk的发展,接着,C语言的面向对象版 C 出现了,由于使用C语言的人很多,C 很快成为面向对象编程的主流语言。不过,为了保 证与C的兼容,C 保留了很多面向过程的痕迹,比如恶心的 指针、全局变量等等。Pascal的改进版Object Pascal相对来说安全许多,后来Borland干脆将 Object Pascal换了个名字,叫Delphi,从此开创了一片面向 对象编程的新世界, Delphi的严谨语法和快速编译吸引了众多的应用开发者,加上Borland的 完美的VCL组件体系,比起MFC来方便而容易,另外,Delphi 完整的数据库组件,也将数据库开发变得简单而容易,Delphi再次成为成熟的面向对象开发 语言。微软当然不会放过这些,通过将MFC内置到操作系统中, 微软的VC 也抢回一些市场。这也是为什么Delphi开发的应用程序编译后会比VC、VB开 发的程序大的原因。

  1995年,Sun的一个开发小 组本来为了小型嵌入式系统开发OAK语言,结果无心插柳柳成荫,发展出了Java语言,它 是一个完全摆脱了传统语言的各种负担的面向对象的语言,当然, 也保留了一些非面向对象的核心(原始类型)以保证速度。现在Java也为最流行的面向 对象语言之一。当然,微软同样不会放过它,擅于模仿的微软立即弄 出一个C#来与之竞争,并在C#中保留了一些变种的指针(指代)以吸引传统的C开发 者。关于这些语言的各自特点,这里就不一一赘述了。

  2.2 数据库与数据对象化

  数据库是企业级应用不可缺少的,因此, 在面向对象流行的时候,数据库厂商也在进行着数据对象化的研究。这 些研究在上个世纪八十年代就初现端倪。

  数据库的对象化一般有两 个方向:一个是在主流的关系数据库的基础上加入对象化特征,使之提供 面向对象的服务,但访问语言还是基于SQL;另一个方向就是彻底抛弃关系数据 库,用全新的面向对象的概念来设计数据库,这就是对象数据库ODBMS。

  2.2.1 关系数据库对象化、SQL99与JDBC3.0

  随 着许多关系数据库厂商开始提供对象化服务,各自的接口开始互不兼容,在 经历一些麻烦之后,关系数据库厂商感觉到规范化的必要,因为当初关系数据 库雄霸天下时SQL92标准起了很大作用,大家可以按照统一的编程方式来访问 高性能的商用数据库。

  关系数据库厂商集中起来,重新将对 象化服务规范起来,形成了SQL99规范,将其中的对象结构等内容规范起来, 开始一个崭新的面向对象的关系数据库(ORDBMS)的历程。

  JDBC3.0就是在这种情况下出台的,它将对关系数据库中的对象服务的访问 API规范起来,为Java平台提供了访问ORDBMS的标准方式。当然 ,JDBC3.0对传统的SQL操作也进行了很多功能增强。

  Oracle是一个传统 的关系数据库厂商,在对象化的道路上,Oracle当然采取追加对 象化特征的道路,以侵入数据对象化的市场,保持Oracle在数据库领域的领导地位。如果说 Oracle7.4使Oracle走向全盛的话,从Oracle8开始,Oracle就 成为关系数据库加对象类型的先驱。在Oracle8中,我们可以定义一些数据结构(Record), 将普通的类型包装在其中成为数据元素,然后可以在客户端按 Record结构进行访问,初步提供了面向对象的数据库服务。

  2.2.2 对象数据库

  对象数据库就是采用全新的面向对象概念来 设计数据库的全新数据库类型。在这方面,主要以一些大学研究机构进行设计和开发,有些也形 成了产品,不过由于市场方面的原因(主要是关系数据库 的容易上手和市场绝对领导地位)和ODBMS先天的一些弱点(比如查询引擎很难优化),使 ODBMS没有象关系数据库那样流行起来。

  不 过对象数据库的对象化特点还是令人割舍不下,目前还是有一些很好的产品在市场上,从商用 的到免费的都用。目前在ODBMS领域占据领导地位的是 Versant、FastObjects和ObjectStore等几大厂商,并且,市场份额也在逐步扩展。免费的产品包括 C 编写的Ozone、纯Java的db4o等等。还有一些研究 机构开发一些底层的面向对象数据库引擎,但只提供一些底层的API,不提供管理方面的功能,以及 一些算法提供开放式接口,让厂商去选择和实现。比如 美国威斯康新大学计算机系数据库组的SHORE引擎,就是一个非常出色的面向对象数据库引擎,现 在还在积极的更新中,一些其它研究机构和数据库厂商 采用它完成了自己的特别的对象数据库,比如专用于地理信息的数据库、专用于宇宙空间数据研究的 数据库等等。

  目前对象数据库最大的 障碍是缺乏统一的规范,各个数据库厂商有各自的访问接口。对象数据库比起关系数据库来,不只是基 本的几种数据类型那么简单,它还涉及继承处理、 多态等一大堆面向对象特征的实现,规范化道路当然困难重重。这也是对象数据库无法普及的一个重要原 因。

  也有一些机构提出了一些建 议的规范,比如制定Corba标准的OMG小组的一个分组ODMG提出的ODMG规范,目前已经是3.0版本,其 中的OQL对象查询语言相当具有吸引力。还有一 些中立的机构提出了其它的一些标准化的对象访问API,也可算是面向对象数据库的规范之一。象前面提到 的FastObjects和Ozone就是符合ODMG3.0规范 的。

[1] [2] [3] [4]

【TC3xx芯片】TC3xx芯片UCB详解 TC3xx芯片UCB详解 阅读详情

相关推荐

三种1:4传输线变压器巴伦的分析

满足多模多馈天线系统匹配要求的传输线变压器巴仑有:双线传输线变压器( 见图1) 、三线传输线变压器( 见图4) 和四线传输线变压器( 见图5) 。尽管3 者的结构不同, 但都可实现1∶4 阻抗变换和不平衡-平衡转换。下面就应用电报方程对它们的阻抗变换特性和输出平衡特性进行分析。

weixin_42407808的博客 8047

JDO快速入门

<br />JDO快速入门Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了 JDO,程序员就可以使用类来定义数据对象,然后支撑程序就会根据类的定义来管理对给定数据库的实际的数据访问了。  <br /><br />      JDO是以Sun

liuzhigang1237的专栏 1万+

Springboot(五十六)SpringBoot3集成SkyWalking

Dskywalking.collector.backend_service:表示skywalking的collector服务的IP及端口。注意上图中红框标注的位置,我们可以根据启动Springboot项目启动时候控制台输出的ID进行筛选。注意上图中红框标注的位置,我们可以根据启动Springboot项目启动时候控制台输出的ID进行筛选。其他的版本的 APM 地址(这个我不需要,我们是在docker中部署的,留给有需要的同学)其他的java 版本的 Agents 地址。

camellia的博客 2601

JDO持久框架——DataNucles

1. JDO框架简介 Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了 JDO,程序员就可以使用类来定义数据对象,然后支撑程序就...

旗鼓相当的对手的博客 3588

3小时学会AI建站!无需编程,个人简历独立站开发速成指南

3小时学会AI建站!个人简历独立站开发速成指南

pei_laoshi的博客 1259

MIPI信号的分析--结合示波器实际测试波形

如果排查的思路对你有帮助,请记住 消雨匆匆 or 大吊工。码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。 部分内容来自于此博客的大神总结: http://www.elecfans.com/news/wangluo/20170323499614.html http://www.elecfans.com/yuanqijian/jieko...

消雨匆匆 4万+

JDO之前世今生

JDO之前世今生1 Java与数据库应用,JDBCJava发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器(J2EE),再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTalk的一切皆对象的理念,摆脱了C++的历史累赘,简洁、自由的风格赢得了很多开发者的喜爱。从JDK1.1开始,Java成为实用的语言,而不是被人观望的新品秀;再经过JDK1.2的

sun2bin的专栏 2583

TDDFT计算软件Octopus学习笔记(二):基态计算(Si)

本文以硅为例,来进行基态计算。

陈啸的博客 7307

Java 数据对象(JDO)介绍

 Java 数据对象(JDO)介绍byJeff Brown, Senior Software Engineer Object Computing, Inc. (OCI) 介绍Java 数据对象 (JDO) is 是一个存储Java对象的规范.   它已经被JCP组织定义成JSR12规范。JDO的第一个版本在2000年6月6日提交并在2002年4月30日正式发布1.0版本规范

1714

24、手机GPS天线设计与有源GNSS天线性能评估

本文系统介绍了手机GPS天线的代表性设计,包括隔离磁偶极子、共面平衡偶极子和小型陶瓷加载QHA天线,分析了其结构特点、性能参数及适用场景。同时详细阐述了有源GNSS天线的组成结构与G/T比作为关键性能指标的评估方法,并提出了组件选择、噪声控制和增益提升等优化策略。最后展望了未来手机GPS天线在小型化、多频集成和智能适应性方面的发展趋势。

pytorch8learner的博客 720

KEPServerEX 6 之 lot Gateway MQTT Clinet 配置使用方式

IoT Gateway即Internet of Things Gateway物联网网关。 ---------------------------------------------------------------------------------- 方式:使用kepw的IOTGateway插件选择MQTTClient 解决:可以实现 KEPW 的Tag值 发送到 MQTT 服务器上 ----------------------------------------...

-雲飛兄-博客 6942

Java数据对象(JDO)快速入门

  JDO有一个充满活力的社区。所以如果你正在为你的POJO寻找持久化解决方案,JDO是一个通过JCP项目开发的标准。JDO为POJO持久化提供了一个丰富和具有全部特征的JSR规范,并且很多开发商正在提供竞争性的JDO实现。EJB3.0,正由Sun微系统和来自于不同的持久化开发商的专家创建,将是未来持久化模型的选择。  持久化Java技术对象到任何关系型数据库都是一项富有挑战性的任务,因为它必须潜

银狐的专栏 3625

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 378

Java数据对象(JDO)的前世今生

1 Java与数据库应用,JDBC   Java发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器(J2EE),再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTalk的一切皆对象的理念,摆脱了C++的历史累赘,简洁、自由的风格赢得了很多开发者的喜爱。从JDK1.1开始,Java成为实用的语言,而不是被人观望的新品秀;再经过JDK1.2的大量增强(尤

Steven_ssm的博客 913

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java数据对象技术JDO初步概览(Java数据对象技术JDO)

作为异军突起的新型语言,Java定义了一个标准的运行环境,用户定义的类在其中得到执行。这些用户自定义类的实例代表了真实环境中的数据,包括储存在数据库、文件或某些大型事务处理系统中的数据,而小型系统通常也需要一种在本地负责控制数据存储的机制。  由于数据访问技术在不同的数据源类型中是不一样的,因此对数据进行访问成了给程序开发人员的一种挑战,程序员需要对每一种类型的数据源使用特定的编程接口

Tony 's Blog 只为精进而生 2161

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java学习之JDO

  Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访

自由引导码民! 1943

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[转载]Java数据对象(JDO)的应用

 在本篇文章中,我们将详细地讨论Sun公司的Java数据对象(JDO)标准。JDO允许我们使用Java对象,支持事务和多用户。与ODBC不同的是,它使我们无需考虑SQL和与数据库有关的其他东西。它与串行化也有所区别,因为它支持多个用户和事务。JDO允许Java开发人员将他们的数据模型用作数据模型,无需在“数据端”、“对象端”之间的转移方面花费大量的时间。 包括CocoBase、WebGain 

741

[转载]JDO之前世今生

JDO之前世今生1 Java与数据库应用,JDBCJava发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器 (J2EE),再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTal...

congji3817的博客 278

如何用JDO开发数据库应用

本文将介绍如何使用Sun公司的最新《Java Data Objects 》规范来进行基于数据库的简单应用程序的开发,从而使读者对JDO有一个直接的感性的认识,为更深入的开发作铺垫,同时也希望抛砖引玉,让更多的富有经验的高手也参与到推广JDO的进程中来,为读者提供更多更精彩的文章! 1. JDO是何方神圣,难道是ADO的翻版? 本节对稍熟悉JDO一点的读者来说,可能算是老生常谈,一堆垃圾,不

seinbar的专栏 1584

Java数据对象(JDO)的应用

在本篇文章中,我们将详细地讨论Sun公司的Java数据对象(JDO)标准。JDO允许我们使用Java对象,支持事务和多用户。与ODBC不同的是,它使我们无需考虑SQL和与数据库有关的其他东西。它与串行化也有所区别,因为它支持多个用户和事务。JDO允许Java开发人员将他们的数据模型用作数据模型,无需在“数据端”、“对象端”之间的转移方面花费大量的时间。 包括CocoBase、WebGain TOP

键者天行 5783

Java 数据对象(Java Data Objects (JDO))

Java 数据对象(Java Data Objects (JDO))是 Sun Microsystems 的一项新技术。尽管 JDO 还有些不成熟(刚发布 1.0 规范),但它很有发展前景,而且它填补了数据库编程领域的一大空白。对 Java 开发人员而言,JDO 为对象持久性提供了第一个标准化的、完全面向对象的方法。与此领域中的其它技术相比,JDO 的优点是使用起来十分简单,而且对原始的 Java

kiOm的专栏 2060

JDO

  如何用JDO开发数据库应用 (本文的版权属作者本人,欢迎转载,但必须注明出处和原作者) 本文将介绍如何使用Sun公司的最新《Java Data Objects 》规范来进行基于数据库的简单应用程序的开发,从而使读者对JDO有一个直接的感性的认识,为更深入的开发作铺垫,同时也希望抛砖引玉,让更多的富有经验的高手也参与到推广JDO的进程中来,为读者提供更多更精彩的文章! 1. JDO是何方神圣,

§为艺术而技术§ 1702
上一篇: 熟练掌握JDK1.5枚举类型-Java基础-Java-编程开发
下一篇: 品味Spring的魅力-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值