Spec-Zone .ru
спецификации, руководства, описания, API
След: JDBC (ТМ) Доступ к базе данных
Урок: Основы JDBC
Используя Объекты Канала передачи данных
Домашняя страница > JDBC (ТМ) Доступ к базе данных > Основы JDBC

Используя Объекты Канала передачи данных

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, http://www.oracle.com в таблице DATA_REPOSITORY. Позже, это выводит на экран содержание всех документов, упомянутых URL, сохраненными в DATA_REPOSITORY, который включает домашнюю страницу Oracle, http://www.oracle.com.

Выборка получает 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);

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Используя Специализированные Отображения Типа
Следующая страница: Используя Объекты RowId