⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpleselect.doc.html

📁 JDBC入门中文文档
💻 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="introTOC.doc.html">目录</a> | <a href="mapping.doc.html">上一页</a> 
    | <a href="bridge.doc.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="418284"></a> </p>

<h1>9 - 样本代码</h1>

<ul>
  <pre><a name="418162"></a><font size="-1">// 以下代码可以用作模板。 仅需
</font><a
name="418163"></a><font size="-1">// 替换相应的 url、登录和口令,然后替换
</font><a
name="418280"></a><font size="-1">// 您要发送到数据库中的 SQL 语句。
</font><a
name="417928"></a><font size="-1">
</font><a name="417929"></a><font size="-1">
</font><a
name="417931"></a><font size="-1">
</font><a name="417932"></a><font size="-1">//----------------------------------------------------------------------------
</font><a
name="417933"></a><font size="-1">//
</font><a name="417934"></a><font size="-1">// 模块:	SimpleSelect.java
</font><a
name="417935"></a><font size="-1">//
</font><a name="417936"></a><font size="-1">// 描述:	ODBC API 的测试程序。 此 java 应用程序
</font><a
name="417937"></a><font size="-1">// 将与某一 JDBC 驱动程序连接,发出 select 语句,
</font><a
name="417938"></a><font size="-1">// 并显示所有结果列和行
</font><a name="417939"></a><font
size="-1">//
</font><a name="417940"></a><font size="-1">// 产品:	JDBC 到 ODBC 桥
</font><a
name="417941"></a><font size="-1">//
</font><a name="417942"></a><font size="-1">// 作者:	Karl Moss
</font><a
name="417943"></a><font size="-1">//
</font><a name="417944"></a><font size="-1">// 日期:	1996 年 2 月
</font><a
name="417945"></a><font size="-1">//
</font><a name="417946"></a><font size="-1">// 版权所有:	1990-1996 INTERSOLV, Inc.
</font><a
name="417947"></a><font size="-1">// 本软件包含 INTERSOLV, Inc. 的
</font><a
name="417948"></a><font size="-1">// 机密和所有权信息
</font><a name="417949"></a><font
size="-1">//----------------------------------------------------------------------------
</font><a
name="417950"></a><font size="-1">
</font></pre>
</ul>

<pre><a name="417951"></a><font size="-1">import java.net.URL;
</font><a name="417952"></a><font
size="-1">import java.sql.*;
</font><a name="417953"></a><font size="-1">
</font><a
name="417954"></a><font size="-1">class SimpleSelect {
</font></pre>

<ul>
  <pre><a name="417955"></a><font size="-1">
</font><a name="417956"></a><font size="-1">public static void main (String args[]) {
</font><a
name="418150"></a><font size="-1">	String url   = &quot;jdbc:odbc:my-dsn&quot;;
</font><a
name="417959"></a><font size="-1">	String query = &quot;SELECT * FROM emp&quot;;
</font><a
name="417960"></a><font size="-1">
</font><a name="417961"></a><font size="-1">	try {
</font><a
name="417962"></a><font size="-1">
</font><a name="417963"></a><font size="-1">		// 加载 jdbc-odbc 桥驱动程序
</font><a
name="417964"></a><font size="-1">
</font><a name="417965"></a><font size="-1">		Class.forName (&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;);
</font><a
name="417966"></a><font size="-1">
</font><a name="417967"></a><font size="-1">		DriverManager.setLogStream(System.out);
</font><a
name="417968"></a><font size="-1">
</font><a name="417969"></a><font size="-1">		// 试图与某一驱动程序连接。 每个
</font><a
name="417970"></a><font size="-1">		// 已注册驱动程序都将被加载,直到
</font><a
name="417971"></a><font size="-1">		// 找到一个可以处理此 URL 的驱动程序
</font><a
name="417972"></a><font size="-1">
</font><a name="417973"></a><font size="-1">		Connection con = DriverManager.getConnection (
</font><a
name="417974"></a><font size="-1">			url, &quot;my-user&quot;, &quot;my-passwd&quot;);
</font><a
name="417975"></a><font size="-1">
</font><a name="417976"></a><font size="-1">		// 如果不能连接,则已
</font><a
name="417977"></a><font size="-1">		// 抛出异常。 因此,如果进入这一步,
</font><a
name="417978"></a><font size="-1">		// 则已成功连接到 URL
</font><a name="417979"></a><font
size="-1">
</font><a name="417980"></a><font size="-1">		// 查询并显示连接生成的
</font><a
name="417981"></a><font size="-1">		// 警告。
</font><a name="417982"></a><font size="-1">
</font><a
name="417983"></a><font size="-1">		checkForWarning (con.getWarnings ());
</font><a
name="417984"></a><font size="-1">
</font><a name="417985"></a><font size="-1">		// 获得 DatabaseMetaData 对象并显示
</font><a
name="417986"></a><font size="-1">		// 一些有关连接的信息
</font><a name="417987"></a><font
size="-1">
</font><a name="417988"></a><font size="-1">		DatabaseMetaData dma = con.getMetaData ();
</font><a
name="417989"></a><font size="-1">
</font><a name="417990"></a><font size="-1">		System.out.println(&quot;\nConnected to &quot; + dma.getURL());
</font><a
name="417991"></a><font size="-1">		System.out.println(&quot;Driver       &quot; +
</font><a
name="417992"></a><font size="-1">			dma.getDriverName());
</font><a name="417993"></a><font
size="-1">		System.out.println(&quot;Version      &quot; +
</font><a name="417994"></a><font
size="-1">			dma.getDriverVersion());
</font><a name="417995"></a><font size="-1">		System.out.println(&quot;&quot;);
</font><a
name="417996"></a><font size="-1">
</font><a name="417997"></a><font size="-1">		// 创建一个 Statement 对象,使我们可以向
</font><a
name="417998"></a><font size="-1">		// 驱动程序提交 SQL 语句
</font><a name="417999"></a><font
size="-1">
</font><a name="418000"></a><font size="-1">		Statement stmt = con.createStatement ();
</font><a
name="418001"></a><font size="-1">
</font><a name="418002"></a><font size="-1">		// 提交查询,创建 ResultSet 对象
</font><a
name="418003"></a><font size="-1">
</font><a name="418004"></a><font size="-1">		ResultSet rs = stmt.executeQuery (query);
</font><a
name="418005"></a><font size="-1">
</font><a name="418006"></a><font size="-1">		// 显示结果集中的所有列和行
</font><a
name="418007"></a><font size="-1">
</font><a name="418008"></a><font size="-1">		dispResultSet (rs);
</font><a
name="418009"></a><font size="-1">
</font><a name="418010"></a><font size="-1">		// 关闭结果集
</font><a
name="418011"></a><font size="-1">
</font><a name="418012"></a><font size="-1">		rs.close();
</font><a
name="418013"></a><font size="-1">
</font><a name="418014"></a><font size="-1">		// 关闭语句
</font><a
name="418015"></a><font size="-1">
</font><a name="418016"></a><font size="-1">		stmt.close();
</font><a
name="418017"></a><font size="-1">
</font><a name="418018"></a><font size="-1">		// 关闭连接
</font><a
name="418019"></a><font size="-1">
</font><a name="418020"></a><font size="-1">		con.close();
</font><a
name="418021"></a><font size="-1">	}
</font><a name="418022"></a><font size="-1">	catch (SQLException ex) {
</font><a
name="418023"></a><font size="-1">
</font><a name="418024"></a><font size="-1">		// 生成 SQLException。 捕获它并
</font><a
name="418025"></a><font size="-1">		// 显示错误信息。 注意
</font><a name="418026"></a><font
size="-1">		// 可能有多个错误对象链接
</font><a name="418027"></a><font size="-1">		// 在一起
</font><a
name="418028"></a><font size="-1">
</font><a name="418029"></a><font size="-1">	System.out.println (&quot;\n*** SQLException caught ***\n&quot;);
</font><a
name="418030"></a><font size="-1">
</font><a name="418031"></a><font size="-1">	while (ex != null) {
</font><a
name="418032"></a><font size="-1">		System.out.println (&quot;SQLState: &quot; +
</font><a
name="418033"></a><font size="-1">				ex.getSQLState ());
</font><a name="418034"></a><font
size="-1">		System.out.println (&quot;Message:  &quot; + ex.getMessage ());
</font><a
name="418036"></a><font size="-1">		System.out.println (&quot;Vendor:   &quot; +
</font><a
name="418037"></a><font size="-1">				ex.getErrorCode ());
</font><a name="418038"></a><font
size="-1">		ex = ex.getNextException ();
</font><a name="418039"></a><font size="-1">		System.out.println (&quot;&quot;);
</font><a
name="418040"></a><font size="-1">		}
</font><a name="418041"></a><font size="-1">	}
</font><a
name="418042"></a><font size="-1">	catch (java.lang.Exception ex) {
</font><a name="418043"></a><font
size="-1">
</font><a name="418044"></a><font size="-1">		// 获得其它类型异常  并转储。
</font><a
name="418045"></a><font size="-1">
</font><a name="418046"></a><font size="-1">		ex.printStackTrace ();
</font><a
name="418047"></a><font size="-1">	}
</font><a name="418048"></a><font size="-1">}
</font><a
name="418049"></a><font size="-1">
</font><a name="418050"></a><font size="-1">//-------------------------------------------------------------------
</font><a
name="418051"></a><font size="-1">// checkForWarning
</font><a name="418052"></a><font
size="-1">// 查询并显示警告。 如果存在警告则返回
</font><a name="418053"></a><font
size="-1">// 真
</font><a name="418054"></a><font size="-1">//-------------------------------------------------------------------
</font><a
name="418055"></a><font size="-1">
</font><a name="418320"></a><font size="-1">private static boolean checkForWarning (SQLWarning warn)
</font><a
name="418321"></a><font size="-1">		throws SQLException  {
</font><a name="418322"></a><font
size="-1">	boolean rc = false;
</font><a name="418060"></a><font size="-1">
</font><a
name="418061"></a><font size="-1">	// 如果给定了 SQLWarning 对象,则显示
</font><a
name="418062"></a><font size="-1">	// 警告消息。 注意可能有
</font><a name="418063"></a><font
size="-1">	// 多个警告链接在一起
</font><a name="418064"></a><font size="-1">
</font><a
name="418065"></a><font size="-1">	if (warn != null) {
</font><a name="418066"></a><font
size="-1">		System.out.println (&quot;\n *** Warning ***\n&quot;);
</font><a name="418067"></a><font
size="-1">		rc = true;
</font><a name="418068"></a><font size="-1">		while (warn != null) {
</font><a
name="418069"></a><font size="-1">			System.out.println (&quot;SQLState: &quot; +
</font><a
name="418070"></a><font size="-1">				warn.getSQLState ());
</font><a name="418071"></a><font
size="-1">			System.out.println (&quot;Message:  &quot; +
</font><a name="418072"></a><font
size="-1">				warn.getMessage ());
</font><a name="418073"></a><font size="-1">			System.out.println (&quot;Vendor:   &quot; +
</font><a
name="418074"></a><font size="-1">				warn.getErrorCode ());
</font><a name="418075"></a><font
size="-1">			System.out.println (&quot;&quot;);
</font><a name="418076"></a><font size="-1">			warn = warn.getNextWarning ();
</font><a
name="418077"></a><font size="-1">		}
</font><a name="418078"></a><font size="-1">	}
</font><a
name="418079"></a><font size="-1">	return rc;
</font><a name="418080"></a><font size="-1">}
</font><a
name="418081"></a><font size="-1">
</font><a name="418082"></a><font size="-1">//-------------------------------------------------------------------
</font><a
name="418083"></a><font size="-1">// dispResultSet
</font><a name="418084"></a><font
size="-1">// 显示给定结果集中的所有列和行
</font><a name="418085"></a><font
size="-1">//-------------------------------------------------------------------
</font><a
name="418086"></a><font size="-1">
</font><a name="418087"></a><font size="-1">private static void dispResultSet (ResultSet rs)
</font><a
name="418088"></a><font size="-1">	throws SQLException
</font><a name="418089"></a><font
size="-1">{
</font><a name="418090"></a><font size="-1">	int i;
</font><a name="418091"></a><font
size="-1">
</font><a name="418092"></a><font size="-1">	// 获得 ResultSetMetaData。 它将用于
</font><a
name="418093"></a><font size="-1">	// 列标题
</font><a name="418094"></a><font size="-1">
</font><a
name="418095"></a><font size="-1">	ResultSetMetaData rsmd = rs.getMetaData ();
</font><a
name="418096"></a><font size="-1">
</font><a name="418097"></a><font size="-1">	// 获得结果集中的列数
</font><a
name="418098"></a><font size="-1">
</font><a name="418099"></a><font size="-1">	int numCols = rsmd.getColumnCount ();
</font><a
name="418100"></a><font size="-1">
</font><a name="418101"></a><font size="-1">	// 显示列标题
</font><a
name="418102"></a><font size="-1">
</font><a name="418103"></a><font size="-1">	for (i=1; i&lt;=numCols; i++) {
</font><a
name="418104"></a><font size="-1">		if (i &gt; 1) System.out.print(&quot;,&quot;);
</font><a
name="418105"></a><font size="-1">		System.out.print(rsmd.getColumnLabel(i));
</font><a
name="418106"></a><font size="-1">	}
</font><a name="418107"></a><font size="-1">	System.out.println(&quot;&quot;);
</font><a
name="418108"></a><font size="-1">
</font><a name="418109"></a><font size="-1">	// 显示数据并获取它,直到结果集末尾
</font><a
name="418110"></a><font size="-1">
</font><a name="418111"></a><font size="-1">	boolean more = rs.next ();
</font><a
name="418112"></a><font size="-1">	while (more) {
</font><a name="418113"></a><font size="-1">
</font><a
name="418114"></a><font size="-1">		// 在每列中循环获得
</font><a name="418115"></a><font
size="-1">		// 并显示列数据
</font><a name="418116"></a><font size="-1">
</font><a
name="418117"></a><font size="-1">		for (i=1; i&lt;=numCols; i++) {
</font><a name="418118"></a><font
size="-1">			if (i &gt; 1) System.out.print(&quot;,&quot;);
</font><a name="418119"></a><font
size="-1">			System.out.print(rs.getString(i));
</font><a name="418120"></a><font size="-1">		}
</font><a
name="418121"></a><font size="-1">		System.out.println(&quot;&quot;);
</font><a name="418122"></a><font
size="-1">
</font><a name="418123"></a><font size="-1">		// 获取结果集的下一行
</font><a
name="418124"></a><font size="-1">
</font><a name="418125"></a><font size="-1">		more = rs.next ();
</font><a
name="418126"></a><font size="-1">	}
</font><a name="418128"></a><font size="-1">}
</font></pre>
</ul>

<pre><a name="418277"></a><font size="-1">}
</font></pre>

<p><br>
</p>

<hr>
<font size="-1"><a href="introTOC.doc.html">

<p>目录</a> | <a href="mapping.doc.html">上一页</a> | <a href="bridge.doc.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="copyright.doc.html"><font size="-1"><i>

<p>版权所有 &copy; 1996, 1997 Sun Microsystems, Inc. 保留所有权利</i></font>。</a><!-- HTML generated by dkramer on March 14, 1997 --> 
</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -