如何存储和检索对外部数据的引用

如何存储和检索对外部数据的引用

日期:2004 年 2 月 9 日

如何存储和检索对外部数据的引用

完成此方法文档后,您应该能够:
  • 在 JDBC 应用程序中使用 DATALINK 数据类型。

读者应该熟悉的内容

要理解本文档,读者应该已经具备关于 JDBC 的基础知识。

引言

本文档演示了如何使用 datalink 数据类型来存储和检索对外部资源的引用。

说明

作为 JDBC3.0 规范变化的一部分,添加了两种新的数据类型 DATALINK 和 BOOLEAN。DATALINK 数据类型使分布式 JDBC 应用程序能够从数据库中检索对外部数据的引用,并能够将外部数据的引用存储到数据库中。新添加的类型引用了相同名称的 SQL 类型。DATALINK 提供对外部资源或 URL 的访问。DATALINK 列的值通过使用新的 getURL() 方法从 ResultSet 实例中检索获得。

在 oracle.jdbc 程序包的类中添加了方法,以支持

  • 利用 DATALINK 检索对外部数据的引用。
  • 存储对外部数据的引用
  • 获取与 DATALINK 相关的元数据信息。

在 java.sql.ResultSet 中提供以下方法,

public java.net.URL getURL(int columnIndex) throws SQLException;
public java.net.URL getURL(String columnName) throws SQLException;

java.sql.CallableStatement 中的方法

public java.net.URL getURL(int parameterIndex) throws SQLException;
public java.net.URL getURL(String parameterName) throws SQLException;

java.sql.PreparedStatement 中的方法

public void setURL(int parameterIndex, java.net.URL x) throws SQLException;

为检索 java.sql.Types 中提供的所有类型代码,可以使用 java.sql.DatabaseMetaData 类中的以下方法,

public java.sql.ResultSet getTypeInfo(...)
public java.sql.ResultSet getColumns(....)

代码段

以下代码使用 PreparedStatement 将 HTTP URL 对象插入到数据库中。


PreparedStatement pstmt = conn.prepareStatement( 
"INSERT INTO sample_repository (sample_name,url) VALUES (?,?)"
);
String sampleUrl = "http://otn.oracle.com/sample_code/tech/java/sqlj_jdbc/"+
"files/jdbc30/savepoint/Readme.html";

pstmt.setString(1,"Save Point Sample");

// Set the URL object
pstmt.setURL(2,new URL(sampleUrl));


以下代码显示如何检索 url 并显示 HTTP URL 中的内容。

ResultSet rs = stmt.executeQuery( "SELECT sample_name, url FROM sample_repository " );

if ( rs.next() ) {
sampleName = rs.getString(1);
// Retrieve the value as a URL object.
url = rs.getURL(2);

if ( url != null ) {
HttpURLConnection urlConnection=(HttpURLConnection)
url.openConnection();
BufferedReader bReader = new BufferedReader(
new InputStreamReader(
urlConnection.getInputStream()));
String pageContent = null;
while ( ( pageContent=bReader.readLine() )!=null ) {
System.out.println(pageContent);

}
}
}

可以 在此查看完整的源代码。

运行示例的前提条件

您需要具备以下条件才能运行此示例 -
  • JDK1.4.x 或更高版本。可以从此处下载。
  • 运行 SQL*Net TCP/IP Listener 的 Oracle Database 10g 或更高版本。可以从此处下载。

  • Oracle Database 10g JDBC 驱动程序。可以从此处下载。

运行示例

  • 在您的工作目录中复制并保存示例 源文件

  • 编译源文件。要运行示例代码,请执行以下命令,
    java oracle.otnsamples.jdbc.Datalink

  • 如果您处于防火墙后面,可执行以下命令,
    java -Dhttp.proxyHost= oracle.otnsamples.jdbc.Datalink

总结

本方法文档说明了如何将 URL 存储到数据库中以及如何从数据库中检索 URL。


请在 OTN 示例代码论坛中发表您对此示例的意见。






寄送此页面
Printer View 打印机视图