![]() |
Josh Heidebrecht(jheidebr@ca.ibm.com) Java 数据库连接(Java Database Connectivity,JDBC)API 是作为 Java 2 标准版(Java 2 Standard Edition,J2SE)和 Java 2 企业版(Java 2 Enterprise Edition,J2EE)平台的一个关键部分出现的。它是一种主要的基于标准的机制,能让 Java 语言通过编程来访问关系数据库,所以当 Java Community Process 发布一份新版本的规范时,开发人员一定会感兴趣。在此,我们就 Sun Microsystems 最近发布的 JDBC 规范的提议最终草案(Proposed Final Draft)3.0 版本来总结一下它的一些新的主要功能。加入 讨论论坛,与作者和其他读者分享您对本文的看法。 介绍 我们会简单地讨论一下 JDBC 的设计师们为这个版本所考虑到的几个设计目标。理解了设计师们的设计基本原理,我们就可以更好地去理解那些改变。我们会总结一下规范中的几个新功能以便了解整个 API 是怎样被改变的。另外,我们还会深入研究几个最适用于应用程序开发人员的关键功能,以成功地协助您利用其新性能。 设计目标 随着 J2EE 平台迅速的日益流行,设计师们也想增强 JDBC 的可伸缩性。新增的语句池和增强的连接池支持离实现这个目标还很远。此外,设计师们还仔细地考虑 JDBC 与新的连接器体系结构之间的关系,来继续提高服务器上的 Java 技术。 在 JDBC 2 开发的过程中,SQL99 还处在一种变化不定的情况下。现在规范已经完成了,而且数据库厂商已经采用了部分标准。所以自然地,JDBC 规范就跟着将自己与 SQL99 功能的一部分相统一。最新的 JDBC 规范已经采用了 SQL99 标准中那些已经被广泛支持的功能,还有那些在五年内可能会获得支持的功能。 如果一个数据库还不支持 JDBC 3.0 所支持的部分 SQL99 功能,驱动程序可以使用元数据 API 向应用程序开发人员表明:其底层数据库不支持一部分 JDBC 功能。这一点允许数据库厂商生产出相应的 JDBC 驱动程序,尽管他们可能不支持所有的功能。增加的两种新的数据类型以及对事务的 Savepoint 的支持说明了两个和 SQL99 有关的改变。 元数据 API CallableStatements 中已命名的参数 数据类型的改变 为了便于修改 CLOB(Character Large OBject,字符型巨对象)、BLOB(Binary Large OBject,二进制巨对象)和 REF(SQL 结构)类型的值,同名的数据类型接口都被更新了。接下来的是,因为我们现在能够更新这些数据类型的值,所以 增加的两种新的数据类型是 检索自动产生的关键字
连接器关系 J2EE 连结器体系结构指定了一组协议,允许企业的信息系统以一种可插入的方式连接到应用服务器上。这种体系结构定义了负责与外部系统连接的资源适配器。连接器服务提供者接口(The Connectors Service Provider Interface,SPI)恰好和 JDBC 接口提供的服务紧密配合。 JDBC API 实现了连结器体系结构定义的三个协议中的两个。第一个是将应用程序组件与后端系统相连接的连接管理,它是由 ResultSet 可保持性
总的来说,在事务提交之后关闭游标操作会带来更好的性能。除非您在事务结束后还需要该游标,否则您最好在执行提交操作后将其关闭。因为规范没有规定 返回多重结果
清单 2 展示的是一个处理多重打开结果的示例。
连接池
预备语句池 清单 3 将示范如何利用 JDBC 对预备语句池的支持。细心的读者可能会发现清单中的语句和普通 JDBC 2 的代码没什么两样。这是因为语句的缓冲是完全在内部实现的。这就意味着,在 JDBC 3.0 下,您现存的代码可以自动利用语句池。但可惜的是,这也意味着您将不能控制哪个预备语句将被缓冲,而只能控制被缓存的语句的数目。
在您的事务中使用 Savepoint 您或许不是经常需要使用 Savepoint。然而,在一种普遍的情况下 Savepoint 会发挥作用,那就是您需要作一系列的改变,但是在知道所有的结果之前不能确定应该保留这些改变的哪一部分。清单 4 中的代码示例说明了如何使用
结论
| ![]() |
JDBC 3.0 有什么新特性
最新推荐文章于 2019-11-19 16:43:31 发布
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>