●JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。
●Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了 JDO,程序员就可以使用类来定义数据对象,然后支撑程序就会根据类的定义来管理对给定数据库的实际的数据访问了。
●JDO是以Sun公司为首所制定的Java Community Process(Java标准制定组织,JCP)的一部分。JDBC仍然保留使用是因为它比起JDO允许程序员在数据库访问上有更大的控制权。除JDO和 JDBC外的另一个选择是Enterprise JavaBeans (EJB)。
●Java开发人员已经有好几种存取数据库的方法:序列化,JDBC,面向对象映射工具,面向对象数据库,以及实体EJB。那为什么还要介绍其他的存储架构呢?答案是,上面每一种实现存储的方案都存在一定的限制。JDO正在尝试解决这些限制。
●JDO并不意味着要取代JDBC。它们是两种以各自独一无二的能力互相补充的技术,具有不同技术背景和开发目的开发者可以使用二者中的一个。例如。JDBC通过直接的数据库访问控制和缓存管理,提供给开发者更大的弹性。JDBC是一种在工业界被广泛认可的成熟技术。另一方面,JDO,通过隐藏SQL提供给开发者更大的简便性。它将Java平台开发者从必须熟悉或学习SQL中解脱出来,而将精力集中在 DOM上,同时JDO管理在持久存储中对象存储的字段到字段的细节。

●JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
●应用程序的开发人员通过访问JDO Instance , 达到访问JDO Instance 所代表的数据对象,包括:ERP,数据库系统等.使数据的存储介质对于应用的开发人员完全透明.
●JDO最早是由Sun召集众多的O/R Mapping开发团队集中起来共同提出的,首先是通过会议确定了JDO需要包括的内容,然后正式提出一个Java规范请求(JSR-12),正式开始了JDO规范的制定。
●JDO:JDO集成了很多上述持久性机制的特性,这使得在JDO中创建一个持久化(persistence)类就像创建一个序列化类一样简单。JDO支持批量数据的存储,数据一致性,并发处理和JDBC的查询功能。就像对象-关系映射软件和对象数据库一样,它允许使用面向对象的高级特性比如“继承”。它避免了像EJB中实体Bean一样必须依赖于来自厂商定义的严格规范。同EJB一样,JDO也不规定任何特定的后端数据库。
●JDO不会抛出通常的运行时异常,比如NullPointerExceptions、 IllegalArgumentException等它只抛出JDOException异常。

●序列化:是Java建立的一种传输机制,它能够把对象的信息转换成一系列的字节码,这些字节码可以被传输到网络或者存储到一个文件中。序列化的使用非常简单,但他还是有限制的。它必须立即存取对象的特征,而且它不适合存取大批量的数据。在更改一个对象的属性时如果有错误发生它无法实现“回滚”,因此不适于应用程序对数据完整性的要求,而且不能实现多个线程或程序异步读写数据。所有这些不足都使得序列化无法满足大多数数据存储要求。
●JDBC:许多程序员使用 JDBC API来操作关系数据库。JDBC克服了许多序列化中存在的缺点:它可以操作大批量的数据,有确保数据一致性的机制,支持信息的并发存取,可以使用已经非常成熟的SQL语言。不幸的是,JDBC使用起来并不像序列化那么简单。JDBC使用的关系范例无法用于存储对象,因此你不得不放弃在代码中使用面向对象原则存储数据。
●简便性(Portability):使用JDO API编写的程序可以在不同开发商的多种可用的实现上运行,不用修改一行代码,甚至不用重新编译。
●透明地访问数据库(Transparent database access):应用程序开发者编写代码透明地访问底层数据存储,而不需要使用任何数据库特定代码。
●易用性(Ease of use):JDO API允许开发者只需要关注他们自己范围内的数据模型(Domain Object Model,DOM),而持久化的细节就留给JDO实现。
●高性能(High Performance):Java应用程序开发者不需要担心数据访问的性能优化,因为这个任务已经委派给了JDO实现,它通过改善数据访问的模式以获得最佳性能。
●和EJB集成(Integration with EJB):应用程序可以利用EJB的特征,例如远程信息处理、自动分布式事务协调和贯穿整个企业级应用使用同样的DOMs实现安全性。

Java job interview:Java对象持久化的新的规范JDO相关推荐

  1. java对象复制到新对象_java – 使用新生成的ID将Hibernate复制对象值复制到新对象中...

    我正在使用带有一些嵌套表的单列pk的关系数据库.我需要在项目中添加简单的归档.归档仅在应用程序到达特定状态时发生,因此我希望将现有的hibernate对象复制到新实例中,新实例将使用新ID保存,同时保 ...

  2. (转)Hibernate框架基础——Java对象持久化概述

    http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构   说 ...

  3. java基础实现水果超市系统(数组+集合+对象持久化(io流存储到txt文件))

    java基础实现水果超市系统(数组+集合+对象持久化(io流存储到txt文件)) Fruit类 package com.zr.fruitSupermarket;/*** 水果* @author ZR* ...

  4. 【Java 8 新特性】Java Comparator.comparing | 提取对象属性,按照指定规则排序

    Java Comparator.comparing | 提取对象属性,按照指定规则排序 Comparator.comparing Comparator.comparingInt Comparator. ...

  5. java初始化实例化_Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  6. 【Java】类与对象 - 对象的组合

    一个类的成员变量可以是Java允许的任何数据类型,因此,一个类可以把某个对象作为自己的成员变量,也就是说,该对象将其他对象作为自己的组成部分. 组合和复用 如果一个对象a组合了对象b,那么对象a就可以 ...

  7. java在何时获得对象的确切类型_JAVA面试题(1)

    基础部分 面向对象 1.谈谈你对多态的理解. 答:在java中对于多态的理解是很重要的 多态的定义: 允许不同类的对象对同一消息做出相应,同一消息可以根据发送对象的不同而采用多种不同的行为方式,(发送 ...

  8. java、上转型对象

    1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a; a = new B(); OR A a; B b = new B(); a = b; ...

  9. Java基础:常见对象

    第一讲   API 一.API概述 1.API(Application Programming Interface) :应用程序编程接口 2.编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发 ...

最新文章

  1. mysql数据库移植到另一台电脑,将mysql数据库从一台计算机复制到另一台计算机...
  2. python一千行入门代码-Python – 一次从文件中读取1000行
  3. prefuse学习(二)显示一张图
  4. 表达能力VS只会敲代码(2018届毕业生web前端)
  5. 推荐15个 JavaScript 和 CSS 库
  6. 深刻理解 React (一) ——JSX和虚拟DOM
  7. spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
  8. oracle安装时03113,oracle的关于“ORA-03113”的怪问题
  9. [Pytorch系列-33]:数据集 - torchvision与CIFAR10/CIFAR100详解
  10. 混沌神经网络的实际应用,神经网络求解优化问题
  11. 全国24省50万亿元投资在路上:后疫情时代碰撞新基建,AI难再“一招鲜”
  12. VB简易绘图板的实现
  13. Python拉勾网爬虫实现
  14. 服务器虚拟机双活,VMware双活数据心解决方案详解.pptx
  15. 聊天链接改单系统源码
  16. 华为最新任免:免去余承东华为云CEO,鸿蒙也有大动作
  17. 解决Windows 11/10 上的网络打印机错误 0x0000011b
  18. 王者s19服务器维护,王者S19丨4个必须知道的调整!最后一个不知没法玩!
  19. [Oracle]In-Memory的Join Group 位于内存的何处?
  20. python日期和时间的操作方法

热门文章

  1. [USACO 2009 Dec G]Video Game Troubles-----分组背包的改良版
  2. python快速幂算法解决大数取模
  3. Windows 下的 Vim 编程
  4. linux telnet 传文件命令,telnet 传输文件
  5. 深信服技术认证之F5隐写工具初探
  6. 公寓宽带服务器无响应,学生宿舍公寓网络建设项目需求分析报告文档(8页)-原创力文档...
  7. 一个苹果成就了牛顿,一个苹果杀死了图灵。
  8. 专访李明远,理清直达号九大疑问
  9. 怎么用python电商文本挖掘?(5)
  10. excel换行按什么键_电脑截图按什么键