📄 jdbc-spec.frame17.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.frame16.html">上一页</a> | <a href="jdbc-spec.frame18.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="20043"></a> </p>
<h2>附录 C:实现说明</h2>
<h3>C.1 通过方法名执行 ResultSet 查询</h3>
<p>以下是使用 ResultSetMetaData 实现 ResultSet.findColumn 和 ResultSet.getString
的一些样本代码。 </p>
<pre><code>private java.util.Hashtable s2c; // 将字符串映射到列索引
</code></pre>
<pre><code>private ResultSetMetaData md; // 元数据对象。
</code></pre>
<pre><code>
</code></pre>
<pre><code>public synchronized int findColumn(String columnName)
</code></pre>
<pre><code> throws SQLException {
</code></pre>
<pre><code> //如果尚无高速缓存,则映射一个。
</code></pre>
<pre><code> if (md == null) {
</code></pre>
<pre><code> md = getMetaData();
</code></pre>
<pre><code> s2c = new java.util.Hashtable();
</code></pre>
<pre><code> }
</code></pre>
<pre><code> // 在高速缓存中查找该映射。
</code></pre>
<pre><code> Integer x = (Integer)s2c.get(columnName);
</code></pre>
<pre><code> if (x != null) {
</code></pre>
<pre><code> return (x.intValue());
</code></pre>
<pre><code> }
</code></pre>
<pre><code> // 下面将使用元数据。
</code></pre>
<pre><code> for (int i = 1; i < md.getColumnCount(); i++) {
</code></pre>
<pre><code> if (md.getColumnName(i).equalsIgnoreCase(columnName)) {
</code></pre>
<pre><code> // 项已添加到高速缓存中。
</code></pre>
<pre><code> s2c.put(columnName, new Integer(i));
</code></pre>
<pre><code> return (i);
</code></pre>
<pre><code> }
</code></pre>
<pre><code> }
</code></pre>
<pre><code> throw new SQLException("Column name not found", "S0022");
</code></pre>
<pre><code>}
</code></pre>
<pre><code>
</code></pre>
<pre><code>// get-by-column-name 方法确实很简单:
</code></pre>
<pre><code>
</code></pre>
<pre><code>public String getString(String columnName) throws SQLException {
</code></pre>
<pre><code> return (getString(findColumn(columnName)));
</code></pre>
<pre><code>}
</code></pre>
<p><a name="25211"></a> </p>
<h3>C.2 对象终止</h3>
<p>当 applet 与各种 JDBC 对象(如 Statement、ResultSet 和 Connection)一起执行时,建议调用这些对象上的“close”。但有些
applet 会忘记,而有些 applet 在关闭这些对象前可能被杀掉。 </p>
<p><a name="37462"></a>如果 JDBC 驱动程序中有与需要显式清除的 JDBC
对象相关联的状态,则它们应负责提供“finalize”方法。当发现对象将成为垃圾时,垃圾收集器将调用这些终止方法,从而使驱动程序关闭(或清除)这些对象。但应注意,我们无法保证垃圾收集器的运行,因此您不能依赖通过调用终止程序来实现上述目的。
</p>
<p><br>
</p>
<hr>
<font size="-1"><a href="jdbc-spec.frame.html">
<p>目录</a> | <a href="jdbc-spec.frame16.html">上一页</a> | <a
href="jdbc-spec.frame18.html">下一页</a> </font></p>
<hr>
<address>
<a href="mailto:jdbc@wombat.eng.sun.com">jdbc@wombat.eng.sun.com</a> 或 <a
href="mailto:jdbc-odbc@wombat.eng.sun.com">jdbc-odbc@wombat.eng.sun.com</a>
</address>
<a href="../../../relnotes/SMICopyright.html"><font size="-1"><i>
<p>版权所有© 1996, 1997 Sun Microsystems, Inc. 保留所有权利。</i></font> </a><!-- HTML generated by Suzette Pelouch on April 10, 1998 -->
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -