|
Spec-Zone .ru
спецификации, руководства, описания, API
|
A DATALINK значение ссылается на ресурс вне базового источника данных через URL. URL, универсальный локатор ресурса, является указателем на ресурс во всемирной паутине. Ресурс может быть чем-то столь же простым как файлом или каталогом, или это может быть ссылка на более сложный объект, такой как запрос к базе данных или к поисковой системе.
Следующие темы затрагиваются:
Используйте метод PreparedStatement.setURL определить a java.net.URL возразите против готового оператора. В случаях, где тип устанавливаемого URL не поддерживается платформой Java, сохраните URL setString метод.
Например, предположите, что владелец Перерыва на кофе хотел бы сохранить список важных URL в таблице базы данных. Следующий пример, DatalinkSample.addURLRow добавляет одна строка данных к таблице DATA_REPOSITORY. Строка состоит из строки, идентифицирующей URL, DOCUMENT_NAME и URL непосредственно, URL:
public void addURLRow(String description, String url)
throws SQLException {
PreparedStatement pstmt = null;
try {
pstmt = this.con.prepareStatement(
"INSERT INTO data_repository" +
"(document_name,url) VALUES (?,?)");
pstmt.setString(1, description);
pstmt.setURL(2,new URL(url));
pstmt.execute();
} catch (SQLException sqlex) {
JDBCTutorialUtilities.printSQLException(sqlex);
} catch (Exception ex) {
System.out.println("Unexpected exception");
ex.printStackTrace();
} finally {
if (pstmt != null) {
pstmt.close();
}
}
}
Используйте метод ResultSet.getURL получать ссылку на внешние данные как a java.net.URL объект. В случаях, куда тип URL возвратился методами getObject или getURL не поддерживается платформой Java, получите URL как a String объект, вызывая метод getString.
Следующий пример, DatalinkSample.viewTable, выводит на экран содержание всех URL, сохраненных в таблице DATA_REPOSITORY:
public static void viewTable(Connection con, Proxy proxy)
throws SQLException, IOException {
Statement stmt = null;
String query =
"SELECT document_name, url " +
"FROM data_repository";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if ( rs.next() ) {
String documentName = null;
java.net.URL url = null;
documentName = rs.getString(1);
// Retrieve the value as a URL object.
url = rs.getURL(2);
if (url != null) {
// Retrieve the contents
// from the URL
URLConnection myURLConnection =
url.openConnection(proxy);
BufferedReader bReader =
new BufferedReader(
new InputStreamReader(
myURLConnection.
getInputStream()));
System.out.println("Document name: " + documentName);
String pageContent = null;
while ((pageContent = bReader.readLine()) != null ) {
// Print the URL contents
System.out.println(pageContent);
}
} else {
System.out.println("URL is null");
}
}
} catch (SQLException e) {
JDBCTutorialUtilities.printSQLException(e);
} catch(IOException ioEx) {
System.out.println("IOException caught: " + ioEx.toString());
} catch (Exception ex) {
System.out.println("Unexpected exception");
ex.printStackTrace();
} finally {
if (stmt != null) { stmt.close(); }
}
}
Выборка DatalinkSample хранит Oracle URL, в таблице DATA_REPOSITORY. Позже, это выводит на экран содержание всех документов, упомянутых URL, сохраненными в DATA_REPOSITORY, который включает домашнюю страницу Oracle, .
Выборка получает URL от набора результатов как a java.net.URL объект со следующим оператором:
url = rs.getURL(2);
Демонстрационные доступы данные, упомянутые URL объект со следующими операторами:
URLConnection myURLConnection = url.openConnection(proxy);
BufferedReader bReader = new BufferedReader(
new InputStreamReader(
myURLConnection.getInputStream()));
System.out.println("Document name: " + documentName);
String pageContent = null;
while ((pageContent = bReader.readLine()) != null ) {
// Print the URL contents
System.out.println(pageContent);
}
Метод URLConnection.openConnection не может взять параметры, что означает что URLConnection представляет прямую связь с Интернетом. Если Вы требуете, чтобы прокси-сервер соединился с Интернетом, openConnection метод принимает a java.net.Proxy возразите как параметр. Следующие операторы демонстрируют, как создать прокси HTTP с именем сервера www-proxy.example.com и номер порта 80:
Proxy myProxy;
InetSocketAddress myProxyServer;
myProxyServer = new InetSocketAddress("www-proxy.example.com", 80);
myProxy = new Proxy(Proxy.Type.HTTP, myProxyServer);