Соединение с базой данных Oracle из IDE NetBeans

IDE NetBeans включает встроенную поддержку для баз данных Oracle. Пользователь может без труда установить подключение к ней из среды IDE и начать работу в базе данных. В данном учебном курсе показано, как использовать локально установленный экземпляр базы данных Oracle 10g Express Edition (Oracle Database XE), упрощенной базы данных, открытой для бесплатных развертывания, распространения и разработки для нее.

В этом документе описывается настройка соединения для локальной установкеи базы данных Oracle XE из IDE NetBeans, использования встроенного редактора SQL IDE для обработки данных базы данных, а также включения расширения PHP OCI 8 для написания кода PHP, выполняющего соединения с базой данных Oracle.

Содержание

Содержимое на этой странице применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans 7.2, 7.3, 7.4, 8.0, пакет Java EE
Комплект для разработчика на языке Java (JDK) Версия 7 или 8
База данных Oracle 10 g Express Edition
Драйвер JDBC Oracle ojdbc6.jar

Перед началом работы

Перед началом прохождения данного учебного курса обратите внимание на следующее:

  • В данном учебном курсе описано подключение к экземпляру базы данных Oracle XE на локальном компьютере, но те же действия также могут быть применены при подключении к удаленному экземпляру. В случае подключения к локальном экземпляру необходимо загрузить и установить базу данных Oracle XE. Процесс установки прост и интуитивен, но если все же возникнут проблемы, ознакомьтесь с Руководством по установке базы данных Oracle XE для своей платформы.
  • Существуют две категории драйверов JDBC Oracle: OCI и JDBC Thin.
    • Драйвер Oracle JDBC Thin основан на Java и не зависит от платформы. Этот автономный драйвер не требует присутствия других библиотек Oracle и обеспечивает прямое подключение к базе данных Oracle. Он используется для подключения к базе данных Oracle в данном учебном курсе. Перед прохождением данного учебного курса необходимо загрузить файл ojdbc6.jar и сохранить его на своей системе.

      Примечание для пользователей Windows. Windows может изменить расширение загруженного файла с .jar на .zip. Но он при этом остается файлом .jar. Расширение можно просто заменить на .jar.

    • Драйвер OCI Oracle использует встроенные клиентские библиотеки Oracle для связи с базами данных. Эти библиотеки входят в состав Oracle Instant Client. Хотя драйвер Thin являеся достаточным в большей части случаев, также рекомендуется использовать драйвер OCI путем выполнения шагов, описанных в разделе Использование драйвера OCI JDBC с IDE NetBeans.
      Хорошим примером использования драйвера OCI является подключение к удаленной базе данных Oracle из приложения PHP с помощью библиотек Oracle Instant Client. Дополнительные сведения о включении расширения OCI8 для PHP см. в разделе этого учебного руководства OCI 8 и IDE NetBeans для PHP.
  • Если вы не использовали базу данных Oracle XE ранее, прочитайте Руководство по началу работы с базой данных Oracle XE.

Предупреждение для пользователей GlassFish. Домашняя страница базы данных Oracle XE, используемая для администрирования базы данных, использует по умолчанию порт 8080. Oracle GlassFish Application Server также использует по умолчанию 8080. Если запустить обе программы одновременно, база данных Oracle XE заблокирует доступ браузеров к GlassFish на localhost:8080. В этом случае все приложения, развернутые на GlassFish, будут возвращать ошибку 404. Проще всего отключать базу данных Oracle XE, если она не нужна во время работы с GlassFish. Если нужно использовать обе эти программы одновременно, измените порт по умолчанию, используемый базой данных Oracle XE. Это проще, чем изменить порт GlassFish по умолчанию. В Интернете можно найти много описаний процесса изменения порта базы данных Oracle XE по умолчанию, включая одно на форумах Oracle.

Установка подключения к базе данных Oracle

В этом упражнении мы создадим и протестируем новое подключение к базе данных.

  1. Запустите базу данных Oracle.
  2. Откройте окно "Службы", выбрав меню "Окно" > "Службы" или Ctrl-5;⌘-5 в Mac. В окне 'Службы' щелкните правой кнопкой мыши узел 'Базы данных' и выберите 'Создать подключение'.
    Элемент 'Новое подключение' во всплывающем меню узла 'Базы данных'
  3. В мастере создания подключений выберите Oracle Thin из раскрывающегося списка Driver ("Драйвер").
  4. Нажмите кнопку Add ("Добавить") и найдите ранее загруженный файл ojdbc6.jar. Нажмите кнопку "Далее".
  5. На панели Customize Connection ("Настроить подключение") мастера введите следующие значения и нажмите кнопку Next ("Далее").
    Имя Значение
    Имя драйвера Oracle Thin (с идентификатором службы (SID))
    Адрес localhost или 127.0.0.1.
    Примечание. В случае удаленного соединения, укажите IP-адрес или разрешаемое имя узла компьютера, на котором установлена ​​база данных.
    Порт 1521 (по умолчанию)
    Идентификатор службы (SID) XE (SID по умолчанию для базы данных Oracle XE).
    Примечание. В случае подключения к удаленной базе данных запросите SID у администратора базы данных.
    Имя пользователя

    Введите имя пользователя.
    В целях данного учебного курса введитеsystem (учетная запись по умолчанию администратора базы данных) и пароль, использованный во время установки базы данных.

    Пароль Введите пароль для выбранного имени пользователя.
  6. Щелкните Test Connection ("Проверить подключение"), чтобы убедиться в наличии у среды IDE возможности подключиться к базе данных. Нажмите кнопку "Далее".

    Если попытка будет успешна, в мастере отобразиться сообщение Connection succeeded ("Подключение успешно").

    Установленное подключение
  7. Выберите HR в раскрывающемся списке Select Schema ("Выбор схемы"). Нажмите кнопку "Завершить".

    Примечание. До получения доступа к NetBeans необходимо разблокировать схему HR. Разблокирование базы данных HR описано в Руководстве по началу работы с базой данных Oracle XE.

Новое подключение появится в узле Databases ("Базы данных") окна Services ("Службы"). Его можно будет развернуть и приступить к просмотру структуры объекта базы данных.
Измените отображаемое имя для узла подключения: выберите Properties ("Свойства") из всплывающего меню узла и нажмите кнопку многоточия, чтобы вывести свойство Display Name ("Отображаемое имя"). Введите OracleDB в качестве отображаемого имени и нажмите кнопку OK.

Установленное подключение

Примечание. Хотя приведенные выше шаги описывают случай подключения к экземпляру локальной базы данных, шаги для подключения к удаленной базе данных такие же. Единственное отличие состоит в том, что вместо указания localhost как имени узла следует ввести IP-адрес или имя узла удаленного компьютера, на котором установлена база данных Oracle.

Управление данными в базе данных Oracle

Обычными способами взаимодействия с базами данных является выполнение команд SQL в редакторе SQL или использование интерфейсов управления базами данных. Например, у базы данных Oracle XE имеется интерфейс на основе браузера, посредством которого можно осуществлять администрирование базы данных, управлять объектами базы данных и манипулировать данными.

Хотя пользователи могут выполнить большую часть задач, связанных с базами данных с помощью интерфейса управления базами данных Oracle в этом учебном руководстве демонстрируется использование редактора SQL в IDE NetBeans для выполнения некоторых из этих задач. В приведенных ниже упражнениях показано, как создавать новых пользователей, быстро воссоздавать таблицы и копировать данные таблиц.

Создание пользователя

Давайте создадим новую учетную запись пользователя базы данных для управления таблицами и данными в базе данных. Чтобы создать нового пользователя, необходимо войти в систему, используя учетную запись администратора базы данных, в нашем случае учетную запись по умолчанию system, созданную при установке базы данных.

  1. В окне 'Службы' щелкните правой кнопкой мыши узел подключения OracleDB и выберите 'Выполнить команду'. При этом открывается редактор SQL IDE NetBeans, в котором можно указать команды, которые будут отправлены базе данных.
    Элемент меню 'Выполнить команду', отображаемый в окне 'Службы'
  2. Чтобы создать нового пользователя, введите приведенную ниже команду в окне редактора SQL и нажмите кнопку Run SQL ("Выполнить SQL") на панели инструментов.
    Команда создания пользователя
    create user jim
    identified by mypassword
    default tablespace users
    temporary tablespace temp
    quota unlimited on users;

    В результате выполнения данной команды будет создан новый пользователь jim с паролем mypassword. Табличным пространством по умолчанию является users, а выделенное пространство не ограничено.

  3. Следующий этап – предоставить jim права учетной записи пользователя на выполнение действий с базой данных. Необходимо разрешить пользователю подключаться к базе данных, создавать и изменять таблицы в табличном пространстве пользователя по умолчанию и выполнять доступ к таблице Employees в примере базы данных hr.

    На практике администратор базы данных обычно создает особые роли и аккуратно настраивает полномочия для каждой из них. Но в целях нашего учебного курса мы можем использовать заранее определенную роль, такую как CONNECT. Дополнительные сведения о ролях и полномочиях приведены в документе Oracle Database Security Guide ("Руководство по безопасности базы данных Oracle").

    grant connect to jim;
    grant create table to jim;
    grant select on hr.departments to jim;

Создание таблицы

Существует несколько способов создания таблицы в базе данных с помощью IDE NetBeans. Например, можно запустить файл SQL (щелкните правой кнопкой мыши файл и выберите 'Запустить файл'), выполните команду SQL (щелкните правой кнопкой мыши узел подключения и выберите 'Выполнить команду') или используйте диалоговое окно 'Создать таблицу' (щелкните правой кнопкой мыши узел 'Таблицы' и выберите 'Создать таблицу'). В этом упражнении мы воссоздадим таблицу, используя структуру другой таблицы.

В данном примере нам нужно, чтобы пользователь jim создал копию таблицы Departments в своей схеме, воссоздав таблицу из базы данных hr. Перед созданием таблицы будет необходимо отключиться от сервера и войти в систему как пользователь jim.

  1. Щелкните правой кнопкой мыши узел подключения OracleDB в окне Services ("Службы") и выберите Disconnect ("Отключить").
  2. Щелкните правой кнопкой мыши узел подключения OracleDB, выберите Connect ("Подключить") и войдите как jim.
  3. Разверните узел Tables ("Таблицы") под схемой HR и убедитесь, что только таблица Departments доступна пользователю jim.

    При создании пользователя jim право выполнения выбора было ограничено таблицей Departments.

    Структура таблицы Grab
  4. Щелкните правой кнопкой мыши узел таблицы Departments и выберите Grab Structure ("Копировать структуру"). Сохраните файл .grab у себя на диске.
  5. Раверните схему JIM, щелкните правой кнопкой мыши узел Таблицы и выберите 'Повторно создать таблицу'.
    Укажите на созданный файл .grab.
    Воссоздание таблицы в схеме другого пользователя
  6. Проверьте сценарий SQL, который будет использован для создания данной таблицы. Нажмите кнопку "ОК".
    Воссоздание таблицы в схеме другого пользователя
    При нажатии кнопки "ОК" новая таблица DEPARTMENTS будет создана и появится под узлом схемы JIM. При щелчке правой кнопкой мыши узла таблицы и выборе 'Просмотреть данные' будет видно, что таблица пустая.

Если нужно скопировать данные из исходной таблицы Departments в новую таблицу, данные можно ввести вручную в редактор таблиц, либо выполнить сценарий SQL для заполнения новой таблицы.

Для ввода данных вручную выполните следующие действия.

  1. Щелкните правой кнопкой мыши таблицу DEPARTMENTS в схеме JIM и выберите View Data ("Просмотр данных").
  2. Щелкните значок Insert Records ("Вставить записи") на панели инструментов View Data ("Просмотр данных"), чтобы открыть окно вставления записей.
    значок 'Вставить записи'
  3. Введите данные в поля для них. Нажмите кнопку "ОК".

    Например, можно ввести следующие значения из исходной таблицы DEPARTMENTS.

    Столбец Значение
    DEPARTMENT_ID 10
    DEPARTMENT_NAME Администрирование
    MANAGER_ID 200
    LOCATION_ID 1700

Для заполнения страницы с помощью сценария SQL выполните следующие действия.

  1. Щелкните правой кнопкой мыши таблицу DEPARTMENTS в схеме JIM и выберите Execute Command ("Исполнить команду").
  2. Введите сценарий на вкладке команд SQL. Нажмите кнопку Run ("Выполнить") на панели инструментов.

    Следующий сценарий заполнит первую строку новой таблицы данными из исходной таблицы.

    INSERT INTO JIM.DEPARTMENTS (DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID) VALUES (10, 'Administration', 200, 1700);

Извлечь этот сценарий SQL для заполнения таблицы из исходной таблицы можно посредством следующих действий.

  1. Щелкните правой кнопкой мыши таблицу DEPARTMENTS в схеме HR и выберите View Data ("Просмотр данных").
  2. Выберите все строки в окне 'Просмотреть данные', затем щелкните правой кнопкой мыши в таблице и выберите 'Показать сценарий SQL' для INSERT во всплывающем меню, чтобы открыть диалоговое окно 'Показать SQL', содержащее сценарий.

    После этого сценарий можно скопировать и модифицировать, насколько это необходимо, для вставки данных в новую таблицу.

См. раздел советов для получения дополнительных сведений о работе с редактором SQL.

Работа с данными в таблице

Для работы с табличными данными можно использовать редактор SQL в IDE NetBeans. Выполняя запросы SQL, можно добавлять, изменять и удалять данные, находящиеся в структурах таблицы.

В первую очередь создайте вторую таблицу под названием Locations в схеме jim (оставайтесь в системе как пользователь jim). На этот раз мы просто выполним готовый к использованию файл SQL в среде IDE:

  1. Загрузите и сохраните файл locations.sql в каталог USER_HOME на своем компьютере.
  2. Откройте окно Favorites ("Избранное") среды IDE и найдите файл locations.sql.

    Чтобы открыть окно избранного, выберите Window ("Окно") > Favorites ("Избранное") в главном меню (нажмите Ctrl-3). Каталог USER_HOME приводится в окне избранного по умолчанию.

  3. Щелкните файл locations.sql правой кнопкой мыши и выберите Run File ("Запустить файл").
    значок 'Вставить записи'

    Примечание. Если зарегистрировано более одного соединения с базой данных в IDE, в IDE может отобразиться запрос на выбор правильного подключения.

  4. В окне 'Службы' щелкните правой кнопкой мыши узел 'Таблицы' и выберите 'Обновить' во всплывающем меню.

    Можно будет увидеть, что таблица Locations с данными была добавлена к схеме JIM.

    Вторая таблица добавлена к схеме jim
  5. Щелкните правой кнопкой мыши узел таблицы Locations и выберите View Data ("Просмотр данных") для просмотра содержимого таблицы. Можно будет увидеть содержимое таблицы Locations.
    В этом окне просмотра можно напрямую вставлять новые записи и изменять существующие данные.
    Просмотр всех данных в таблице Locations
  6. Далее мы выполним запрос для просмотра информации из двух таблиц Departments и Locations.

    В этом случае мы используем простое "естественное слияние", поскольку столбец "location_id" обеих таблиц одинаков и содержит значения одного типа данных. Этот тип слияния выбирает только строки, имеющие одинаковые значения в соответствующем столбце location_id.

    Откройте окно команд SQL (щелкните правой кнопкой мыши узел Таблицы в схеме JIM и выберите 'Выполнить команду'), введите следующий оператор SQL и щелкните значок 'Запустить SQL'.

    SELECT DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID, STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE 
    FROM departments NATURAL JOIN locations
    ORDER by DEPARTMENT_NAME;

    Данный запрос SQL возвращает строки из таблицы Departments, location_id которых равен значениям в соответствующем столбце таблицы Locations. Результаты упорядочены по именам в таблице Departments. Обратите внимание, что новые записи нельзя вставлять напрямую в результаты данного запроса, как это можно делать в представлении одной таблицы.

    Объединение данных из нескольких местоположений

    Запрос присоединения SQL как представление (щелкните правой кнопкой мыши узел 'Представление' и выберите 'Создать представление') и запустите его в удобное время. Но для этого пользователь базы данных должен иметь право на создание представлений, которого нет у созданного в нашем примере пользователя. Можно войти в систему, используя системную учетную запись, предоставить jim право на создание представлений (с помощью следующего оператора SQL: "grant create view to jim;") и попробовать создать собственное представление.


OCI 8 и IDE NetBeans для PHP

Можно использовать расширение OCI 8 PHP и IDE NetBeans для PHP для записи кода PHP, который используется для взаимодействия с базой данных Oracle. Использование IDE NetBeans для PHP и базы данных Oracle

  1. Настройте среду PHP, как описано в разделе "Настройка среды для разработки на языке PHP" Учебной карты по PHP. Обратите внимание, что IDE NetBeans поддерживает только PHP 5.2 или 5.3.
  2. Откройте свой файл php.ini в редакторе. Убедитесь, что свойство extension_dir настроено на каталог расширений PHP. Обычно этим каталогом является PHP_HOME/ext. Например, если PHP 5.2.9 установлен в корневой каталог C:, настройкой extension_dir должно быть extension_dir="C:\php-5.2.9\ext".
  3. Найдите строку extension=php_oci8_11g.dll (для Oracle 11g) или extension=php_oci8.dll (для Oracle 10.2 или XE) и снимите с нее комментарий. В каждый конкретный момент времени может быть включено лишь одно из этих расширений.

    Важно! Если в php.ini нет такой строки, поищите в папке расширений файл расширения OCI 8. В случае отсутствия файла расширения OCI 8 в папке расширений информацию о загрузке и установке OCI 8 можно найти в документе Installing PHP and the Oracle Instant Client for Linux and Windows ("Установка PHP и Oracle Instant Client для Linux и Windows").

  4. Перезапустите Apache. (Пользователям Windows следует перезагрузить компьютер).
  5. Выполните phpinfo(). Если OCI 8 успешно включен, раздел OCI 8 появится в выводе phpinfo().

Дополнительные сведения о включении OCI 8 и, в особенности, об использовании OCI 8 с удаленным сервером Oracle DB приведены в документе Installing PHP and the Oracle Instant Client for Linux and Windows ("Установка PHP и Oracle Instant Client для Linux и Windows").

Если включена поддержка OCI 8, IDE NetBeans для PHP получает доступ к этому расширению для завершения кода и отладки.

Окно редактора с параметрами автозавершения кода OCI 8

Использование драйвера JDBC OCI с IDE NetBeans

Пакеты драйверов OCI доступны в том же файле JAR, что и драйвер JDBC Thin (ojdbc6.jar). Выбор драйвера, который следует использовать, зависит от интерфейса: oracle.jdbc.OracleDriver для драйвера Thin и oracle.jdbc.driver.OracleDriver для драйвера OCI. Чтобы использовать драйвер OCI, необходимо также установить Oracle Database Instant Client, поскольку он содержит все библиотеки, необходимые драйверу OCI для связи с базой данных.

Соединение с базой данных Oracle из IDE NetBeans с помощью драйвера OCI Oracle:

  1. Загрузите "Базовый" пакет Oracle Database Instant Client для своей платформы. Выполните инструкции по установке на данной странице.
  2. В окне 'Службы' в IDE щелкните правой кнопкой мыши узел 'Базы данных' и выберите 'Создать подключение'.
  3. В действии Locate Driver ("Обнаружение драйвера") выберите OCI Oracle, нажмите кнопку Add ("Добавить") и укажите файл ojdbc6.jar.
  4. В диалоговом окне Customize Connection ("Настроить подключение") предоставьте сведения о подключении: IP-адрес, порт, SID, имя пользователя и пароль.
    Обратите внимание, что URL-адреса JDBC для драйверов OCI и Thin различаются.
    Окно редактора с параметрами автозавершения кода OCI 8

Устранение проблем

В приведенных ниже советах по устранению неполадок описаны лишь некоторые из встреченных исключений. Если вы не нашли ответа на свой вопрос, выполните поиск самостоятельно или воспользуйтесь ссылкой "Отправить отзыв об этом учебном курсе" и направьте нам свои комментарии и предложения.

  • Встречена ошибка следующего типа:
    Shutting down v3 due to startup exception : No free port within range:
    >> 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@7dedad
    Это вызвано тем, что как сервер приложений GlassFish, так и Oracle Database используют порт 8080. Если нужно использовать оба приложения одновременно, следует изменить этот порт по умолчанию для одного из них. Чтобы сбросить порт базы данных Oracle по умолчанию, можно использовать следующую команду:
    CONNECT SYSTEM/password
    EXEC DBMS_XDB.SETHTTPPORT(<new port number>);
  • Получена следующая ошибка:
    Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor.
    Это происходит, когда идентификатор службы (SID) экземпляра базы данных, переданный дескриптором подключения, неизвестен прослушивающему процессу. Такое исключение может быть вызвано рядом причин. Например, база данных Oracle может не работать (простейший случай). Либо SID может быть неверен или неизвестен прослушивателю. Если использовать SID по умолчанию (например, SID по умолчанию для базы данных Oracle Express Edition – XE), эта проблема маловероятна. SID входит в части CONNECT DATA файла tnsnames.ora (на компьютере Windows этот файл расположен по адресу %ORACLE_HOME%\network\admin\tnsnames.ora).
  • Получена следующая ошибка:
    ORA-12705: Cannot access NLS data files or invalid environment specified.

Как правило, это означает, что переменная среды NLS_LANG содержит недопустимое значение языка, территории или набора символов. Если это так, недопустимые настройки NLS_LANG следует отключить на уровне операционной системы. В случае Windows, переименуйте подключ NLS_LANG в реестре Windows, расположенный в \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE. В случае Linux/Unix, выполните команду "unset NLS_LANG".


Дополнительные сведения

Более подробные сведения об администрировании и использовании базы данных Oracle доступны в соответствующей документации по Oracle. Далее приведен краткий список наиболее часто используемой документации.

Дополнительные сведения о работе с другими базами данных в IDE NetBeans см.

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo