📄 jdbc-spec.frame18.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
<title></title>
</head>
<body bgcolor="#ffffff">
<table width="600">
<tr>
<td><font size="-1"><a href="jdbc-spec.frame.html">目录</a> | <a
href="jdbc-spec.frame17.html">上一页</a> | 下一页 </font></td>
<td align="right"><i>JDBC<sup><font size="-2">TM</font></sup> 指南:入门</i></td>
</tr>
</table>
<hr>
<p><br>
<a name="25168"></a> </p>
<h2>附录 D: 变化记录</h2>
<p>0.50 和 0.60 之间的变化包括:
<ul>
<p><a name="20071"></a></p>
<li>修订了事务的说明,删除了对过时 beginTransaction 方法的引用 (<a
href="jdbc-spec.frame9.html#11734">9.3</a>)。<br>
<br>
<a name="20075"></a> </li>
<li>修正了方法名中的各种拼写错误、大写字母使用错误及不一致问题,特别是对于
DatabaseMetaData 接口。<br>
<br>
<a name="20285"></a> </li>
<li>为 SQLWarning 添加了新方法以管理链。<br>
<br>
<a name="20508"></a> </li>
<li>指明如果试图检索不可用的目录信息,则 metadata
方法应抛出异常,而不是返回空 ResultSets。 (参见 DatabaseMetaData.java
最前面的注释)。<br>
<br>
<a name="20509"></a> </li>
<li>将各种历史记录从主文档移到附录 A 中。<br>
<br>
<a name="20192"></a> </li>
<li>添加 Statement.executeUpdate 并修改了 Statement.execute。execute
方法将用于动态编程,而 executeQuery 和 executeUpdate
则用于简单语句的执行。<br>
<br>
<a name="20489"></a> </li>
<li>重写第 <a href="jdbc-spec.frame5.html#20404">5.3</a> 节,阐明 JDBC
驱动程序实现者的安全要求。<br>
<br>
<a name="20523"></a> </li>
<li>添加了 DriverManager.println,用于记录 JDBC 日志流。<br>
<br>
<a name="20497"></a> </li>
<li>删除 DriverManager.loadDriver 并修改了第 <a href="jdbc-spec.frame6.html#4731">6.6</a>
节。建议您用 Class.forName 加载驱动程序(这反映了 Java
类加载器实现问题)<br>
<br>
<a name="20738"></a> </li>
<li>第 11 节中的叙述更清晰,但接口无变化。<br>
<br>
<a name="20774"></a> </li>
<li>删除了 ParameterMetadata。它的内容是 DatabaseMetaData.getProcedureColumns
所返回信息的子集,而后者接口更完整。<br>
<br>
<a name="20797"></a> </li>
<li>将 Environment 重命名为 DriverManager。该名称可以更好地反映该类的最终功能。<br>
<br>
<a name="20942"></a> </li>
<li>声明 JDBC 将对 CHAR(n) 域执行空间填补(第 <a
href="jdbc-spec.frame8.html#15953">8.3</a> 节)。<br>
<br>
<a name="21054"></a> </li>
<li>添加第 <a href="jdbc-spec.frame7.html#20964">7.4</a>
节以描述数据截断规则。<br>
<br>
<a name="21055"></a> </li>
<li>删除了 ResultSet.getRowNumber。应用程序可自行完成相应的功能。<br>
<br>
<a name="21059"></a> </li>
<li>将事务隔离层的常量值改为与 ODBC 相同。<br>
<br>
<a name="21065"></a> </li>
<li>删除了 ResultSet.getRowCount。一些评论家已对实现 ResultSet.getRowCount
时费用过高问题表示了关注。<br>
<br>
<a name="21069"></a> </li>
<li>删除了 ResultSet.getColumnCount。由于 ResultSetMetaData.getColumnCount
方法的存在,本方法已显多余。同时,需要知道列数的程序员可能也需要其它列的元数据。<br>
<br>
<a name="21097"></a> </li>
<li>为满足普遍需要,附加了 ResultSet 方法来根据列名检索值。<br>
<br>
<a name="24833"></a> </li>
<li>使 ResultSet
成为抽象类(而不是接口),以便提供以列名为参数的方法的缺省实现(注意:目前我们对该实现尚无信心,而且仍在磋商)。<br>
<br>
<a name="24834"></a> </li>
<li>添加了 Statement.setCursorName。<br>
<br>
<a name="24843"></a> </li>
<li>将 Java“doc comment”风格的注释添加到多个 API 说明中。<br>
<br>
</li>
</ul>
<p><a name="24855"></a><a name="24860"></a> 0.60 和 0.70 之间的变化包括:
<ul>
<p><a name="24856"></a></p>
<li>除 Statement 警告链外,还添加了独立的 ResultSet
警告链(及访问方法)。<br>
<br>
<a name="25102"></a> </li>
<li>阐明了 ResultSets 中 getAscciStream 和 getUnicodeStream 的功能。<br>
<br>
<a name="25119"></a> </li>
<li>阐明了 PreparedStatements 中 setAsciiStream 和 setUnicodeStream 的功能。<br>
<br>
<a name="25147"></a> </li>
<li>明确声明存储过程的 OUT 参数不支持 LONGVARCHAR 和 LONGVARBINARY(参见第
<a href="jdbc-spec.frame7.html#4099">7.3.3</a> 和 <a href="jdbc-spec.frame14.html#6552">14.2</a>
节)。<br>
<br>
<a name="25160"></a> </li>
<li>从 CallableStatement 中删除了 getLongVarChar 和 getLongVarBinary。<br>
<br>
<a name="25161"></a> </li>
<li>将 ResultSet 重新改为接口(而不是抽象类)。我们提供了
ResultSet.findColumn 的示例实现作为附录 <a href="jdbc-spec.frame17.html#20043">C</a>
中的参考材料。<br>
<br>
<a name="25289"></a> </li>
<li>用 ResultSet.wasNull 取代了 ResultSet.isNull。我们更喜欢 isNull
风格,但早期 JDBC
实现程序发现:有些数据库中,某些数据无法可靠地实现 isNull。遗憾的是,这些数据库需要首先尝试读取,而后才能检查其返回值是否为
NULL。<br>
<br>
<a name="25313"></a> </li>
<li>同样,我们用 CallableStatement.wasNull 取代了 CallableStatement.isNull。<br>
<br>
<a name="25342"></a> </li>
<li>如果驱动程序完全符合 JDBC 标准,则将 Driver.jdbcCompliant
添加到报告中。<br>
<br>
<a name="25368"></a> </li>
<li>添加了 jdbc:odbc 子协议 URL 语法的规范 (<a href="jdbc-spec.frame6.html#25343">6.3.6</a>)。<br>
<br>
<a name="25593"></a> </li>
<li>添加了 LIKE 转义字符 (11.4)。<br>
<br>
<a name="25595"></a> </li>
<li>添加了 Driver.acceptURL 和 DriverManager.getDriver。 <br>
<br>
<a name="25603"></a> </li>
<li>声明自动关闭功能只适用于 PreparedStatements、CallableStatements 和
ResultSets,而不影响简单的 Statement (<a href="jdbc-spec.frame9.html#11734">9.3</a>)。<br>
<br>
<a name="25609"></a> </li>
<li>添加了 Driver.getPropertyInfo 方法和 DriverPropertyInfo 类,从而允许通用
GUI 应用程序查看驱动程序所需的连接属性。<br>
<br>
<a name="25610"></a> </li>
<li>删除了 SQLWarning 类型 NullData。wasNull
方法可用于检查是否已读取空数据。<br>
<br>
<a name="25622"></a> </li>
<li>阐明每次调用“next”时将清除 ResultSet 警告。<br>
<br>
<a name="25716"></a> </li>
<li>阐明每次(重)执行语句时将清除 Statement 警告。<br>
<br>
<a name="25717"></a> </li>
<li>将所有格式为 getXXX 或 setXXX 的方法替换为名称基于所返回 Java
类型而非 SQL 类型的相似方法。示例之一就是将 getTinyInt 改为 getByte。参见第
<a href="jdbc-spec.frame7.html#20376">7</a> 节或附录 <a
href="jdbc-spec.frame15.html#25724">A.10</a>。这是一个非常大的改变,而作出这种改变的原因就是:评论家在方法名中的
SQL 类型使用上有普遍的混乱现象,而且他们普遍要求 Java
类型名应具有优先权。<br>
<br>
<a name="25754"></a> </li>
<li>添加了附加的 getObject/setObject 方法和额外的说明性文本 (<a
href="jdbc-spec.frame14.html#6552">14.2</a>)。<br>
<br>
<a name="25755"></a> </li>
<li>添加了阐明何时执行或不执行数据转换的章节(<a
href="jdbc-spec.frame7.html#26308">7.1.1</a>、<a href="jdbc-spec.frame7.html#26386">7.2.1</a>
和 <a href="jdbc-spec.frame7.html#26428">7.3.1</a>)。<br>
<br>
<a name="26468"></a> </li>
<li>添加了额外的表以阐明从 Java 到 SQL 类型的映射(表 <a
href="jdbc-spec.frame8.html#28688">3</a> 和 <a href="jdbc-spec.frame14.html#30877">5</a>)。
<br>
<br>
</li>
</ul>
<p><a name="35944"></a> 0.70 和 0.95 之间的变化包括:
<ul>
<p><a name="35952"></a></p>
<li>将 SQL FLOAT 的缺省映射改为 Java double 或 Double(表 <a
href="jdbc-spec.frame7.html#30717">1</a>、<a href="jdbc-spec.frame8.html#27081">2</a> 和
<a href="jdbc-spec.frame14.html#6941">4</a>)。<br>
<br>
<a name="35963"></a> </li>
<li>将 Java float 和 Float 的缺省映射改为 SQL REAL(表 <a
href="jdbc-spec.frame8.html#28688">3</a>、<a href="jdbc-spec.frame14.html#30877">5</a>)。<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -