Меню Рубрики

Установка jdbc драйвера oracle

Работа с базами данных с помощью JDBC драйвера

В этом уроке я бы хотел вас научить работать с базами данных MySQL, PostgreSQL, Oracle. А именно как подключится и выполнять SQL запросы к базе с помощью java.

Что такое JDBC?

JDBC Driver – (Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql , входящего в состав Java SE.

Зачем нужен JDBC?

JDBC – позволяет получать доступ к БД, а также выполнять к ней SQL запросы.

Шаг 1.

Скачиваем jar файл JDBC драйвера.

Шаг 2.

Подключение к БД Mysql:

Подключение к БД PostgreSQL:

Подключение к БД Oracle:

В 1-й строке мы указываем наш JDBC драйвер. Не забудьте добавить его в ClassPath иначе его компилятор его не увидит.
Во 2-й строке JDBC Manager который открывает соединение с базой данных и обеспечит нам дальнейшее обращение к ней.
И последняя строка закрывает соединение с БД.

Желательно строку для определения JDBC поместить в блок try для того чтобы контролировать его наличия в вашем приложении.

Шаг 3. Создание таблиц в БД.

Вынесем в отдельный метод соединение с БД.

Этот метод будет создавать в БД таблицу:

и в main методе вызываем метод createDbTable() который создаст таблицу в БД.

В результате вы должны получить:

Шаг 4. Добавление новой записи в БД.

метод который будет возвращать текущую дату и время:

И выполняем наш SQL запрос который лежит в переменной insertTableSQL

Шаг 5. Получение данных с БД.

Шаг 6. Удаление данных с БД.

Выполняем запрос на удаление:

Шаг 7. Обновление данных в БД.

Выполняем запрос на обновление записи:

Выводы.

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

ПОХОЖИЕ ПУБЛИКАЦИИ

29 комментариев к статье «Работа с базами данных с помощью JDBC драйвера»

Проблема с подключением jdbc к приложению для Android – заголовок комментария.

Почему в жизни так бывает …

строка Connection connection = DriverManager.getConnection(“jdbc:postgresql://хост:порт/имя_дб”,”пользователь”, “пароль”);
выдаёт ошибку Unhandled exception type SQLException
( строка connection.close(); – выдаёт туже ошибку )

При добавлении строки import java.sql.SQLException; в MainActivity.java
выводит сообщение …
The import java.sql.SQLException is never used

При этом файл postgresql-9.2-1002.jdbc4.jar лежит в /libs

И в classpath добавлять пробовал, хотя многие источники говорят, что это не обязательно, достаточно держать файл postgresql-9.2-1002.jdbc4.jar в /libs

При нажатие ctrl+shift+O Eclips добавляет только:

источник

Java: подключение к базам данных Oracle

Часто для выполнения задач по манипулированию данными программам Java требуется подключиться к базе данных. JDBC — это интерфейс, который позволяет программе Java подключаться к базе данных и выдавать операторы DML и DDL. Интерфейс JDBC позволяет использовать динамические операторы SQL в тех ситуациях, когда количество и тип столбцов неизвестно до времени выполнения. (При написании статического SQL-кода можно применять интерфейс SQLJ, который позволяет вставлять операторы SQL в код Java.) JDBC предоставляет обширную библиотеку подпрограмм, которые помогают открывать и закрывать соединения с базами данных и обрабатывать данные.

Далее будет показано использование JDBC для подключения и работы с базами данных Oracle из программ Java.

Установка соединения с базой данных Oracle

Прежде чем можно будет подключиться к базе данных, необходимо выбрать соответствующие драйверы. Oracle предоставляет четыре основных вида драйверов JDBC.

  • Тонкий драйвер JDBC. Этот простейший клиентский драйвер Java предоставляет прямое соединение с базой данных посредством протокола TCP/IP. Этот драйвер требует наличия слушателя и использует сокеты для установления соединений базами данных.
  • OCI-драйвер JDBC. Этот драйвер требует наличия клиентской инсталляции Oracle, поэтому он является специфичным для Oracle. Этот драйвер в высшей степени масштабируем, и он может использовать пул соединений для обслуживания большого количества пользователей.
  • Тонкий драйвер серверной стороны JDBC. Действуя на сервере, этот драйвер подключается к удаленным базам данных и предоставляет те же функциональные возможности, что и тонкий драйвер клиентской стороны.
  • Внутренний драйвер серверной стороны JDBC. Как видно из его названия, этот драйвер располагается на сервере и используется виртуальной машиной Java Virtual Machine (Virtual Machine Java — JVM) для обмена данными с сервером базы данных Oracle.

После выбора конкретного типа драйвера JDBC необходимо указать драйвер JDBC одним из двух способов: используя статический метод registerDriver () класса DriverManager JDBC или применяя метод forName () класса java.lang . Эти два метода указания драйвера JDBC имеют следующий вид:

Как только драйвер JDBC загружен, с помощью статического метода getConnection () класса DriverManager можно установить соединение с базой данных. Этот метод создаст экземпляр класса connection JDBC. Соответствующий код приведен в листинге ниже.

Если вся предоставленная информация верна, соединение с базой данных будет установлено из приложения Java.

Работа с базой данных Oracle из Java

Теперь, когда вы научились подключаться к базе данных, используя интерфейс JDBC, пора выяснить, как посредством JDBC-соединения можно обрабатывать операторы SQL в базе данных.

Читайте также:  Установка 2din магнитолы kia rio 2014

SQL-код нельзя выполнять непосредственно из программы Java. Вначале потребуется создать операторы JDBC, а затем нужно будет выполнить SQL-операторы. Давайте подробно рассмотрим эти два этапа.

Создание объекта Statement

Чтобы передать SQL-операторы базе данных, необходимо создать JDBC-объект Statement . Этот объект свяжет себя с открытым соединением, и в дальнейшем будет действовать в качестве канала, по которому SQL-операторы будут передаваться из программы Java в базу данных для выполнения. Объект Statement JDBC создается следующим образом:

С объектом stmt никакие SQL-операторы не связаны. Однако класс Statement содержит еще один объект, названный PreparedStatement, который, кроме того, что служит каналом для выполнения операторов, всегда содержит SQL-оператор. Этот SQL- оператор компилируется немедленно, причем он может компилироваться только один раз, а затем использоваться многократно, что является огромным преимуществом.

Однако для простоты в этом разделе описано только использование объекта Statement . Теперь рассмотрим выполнение SQL-операторов.

Выполнение SQL-операторов

Чтобы понять работу SQL-операторов JDBC, следует отделить операторы SELECT , выполняющие запросы к базе данных, от всех остальных операторов. В отличие от других операторов, операторы SELECT не изменяют состояние базы данных.

Вначале рассмотрим операторы обработки запросов.

Обработка запросов

Для получения результатов запроса операторы SELECT используют метод execute- Query() . Этот метод возвращает результаты в объекте ResultSet . Пример приведен в листинге ниже.

Обратите внимание, что rs — это экземпляр объекта resultSet , и именно он содержит результаты запроса. Объект resultSet предоставляет также курсор, что позволяет обращаться к результатам одним за другим. При каждом вызове метода resultSet курсор перемещается к следующей строке в результирующем наборе.

Обработка операторов DDL и не связанных с запросами операторов DML

Любой оператор, который изменяет состояние базы данных — будь то оператор DDL или оператор DML, такой как INSERT , UPDATE либо DELETE — выполняется с помощью метода executeUpdate() . Обратите внимание, что слово “update” (“обновление”) в имени метода указывает, что SQL-оператор будет изменять что-либо в базе данных.

Вот несколько примеров операторов executeUpdate()

Приведенные операторы создают объект Statement , а затем создают таблицу и вставляют в нее определенные данные.

При использовании интерфейса для выполнения SQL-операторов все обычные свойства SQL-транзакций, такие как целостность и продолжительность, сохраняются. По умолчанию каждый оператор утверждается после его выполнения, поскольку, как видно из следующего примера, значение conn.setAutoCommit() установлено равным true. Утверждение после выполнения каждого оператора можно гарантировать любым из следующих способов (при желании можно применить метод conn.rollback() , чтобы выполнить откат оператора):

Ниже приведен простой пример, который демонстрирует использование операторов commit() и rollback():

Обработка ошибок

Все программы должны содержать встроенный обработчик исключений. Это особенно важно для тех операторов DML, которые изменяют состояние базы данных. Один из способов достижения этой цели предусматривает применение оператора rollback () при возникновении ошибки, что позволяет отменить все частичные изменения.

Для перехвата ошибок можно использовать метод SQLException (). В программах Java для генерирования (или выдачи) исключения используют блок кода try , а блок catch будет “перехватывать” выданное подобным образом исключение. Пример блока кода Java, который иллюстрирует эти концепции, приведен в листинге ниже.

Пример программы подключения к базе данных Oracle на Java

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

Поскольку в данном случае нас интересует администрирование базы данных Oracle, а не особенности программирования, эта простая программа Java, в основном, призвана привлечь внимание к аспектам соединения с базами данных Oracle.

источник

Java и данные из Oracle — все очень просто

Содержание


Взаимодействие с базой данных через JDBC

Общение программ на Java с данными в БД под управлением Oracle осуществляется двумя основными способами: через JDBC и через SQLJ.

Использование JDBC


JDBC и JDBC-драйверы

JDBC — это Java API (Application Program Interface) для доступа из Java-программ к SQL-СУБД разных типов. Подразумевается, что одна и та же Java-программа сумеет с помощью JDBC реально работать в среде Windows с данными mySQL или же в среде Solaris с данными Informix. Она же может быть хранимой процедурой в БД под Oracle и работать с данными той же Oracle или, к примеру, Sybase.

Реализуется JDBC в виде интерфейсов java.sql (основной) и javax.sql (расширенный). Конкретный набор классов, реализующий JDBC-интерфейс и осуществляющий доступ к конкретной СУБД, называется драйвером. JDBC-драйверы для своих СУБД поставляют все основные разработчики.

Описаниями JDBC определено четыре типа JDBC-драйверов: два «тонких» и два «толстых».

Читайте также:  Установка магнитолы 2дин митсубиси

  • Соединительный драйвер JDBC (тип I, «толстый»)
  • «Родной» API-драйвер (тип II «толстый»)
  • Общий сетевой API-драйвер (тип III «частично тонкий»)
  • Драйвер прямого доступа через разъем (тип IV «тонкий»)

JDBC-драйверы в Oracle

Фирма Oracle поставляет для работы со своей СУБД следуюшие драйверы, удовлетворяющие спецификациям JDBC:

  • тонкий (thin; тип IV, для работы извне, через браузер, по TCP/IP)
  • толстый (thick; тип II, для локальной работы извне)
  • родной (тип II, для работы изнутри, из хранимых в БД Java-процедур)

Помимо этого около сотни разных фирм поставляют JDBC-драйверы собственной реализации типов I, II, III и IV, в том числе и для связи с Oracle. Они доступны в интернете.

Установка JDBC-драйверов для работы с Oracle

Пакет java.sql с классами JDBC, реализованными фирмой Oracle в соответствии с интерфейсами, предлагаемыми фирмой Sun, входит в состав стандартного JDK. Тонкий драйвер входит в состав файла classes111.zip, или его более поздней версии classes12.zip. При отсутствии на компьютере его можно получить по адресу download.oracle.com/otn/utilities_drivers/jdbc/817/classes12.zip (версия 8.1.7).

Толстый драйвер можно получить по адресу download.oracle.com/otn/utilities_drivers/jdbc/817/jdbc817jdk12-nt.zip (для NT) или download.oracle.com/otn/utilities_drivers/jdbc/817/jdbc817jdk12-sol.zip (для Solaris).

Для работы с драйверами нужно добавить путь к этим файлам к переменной среды окружения CLASSPATH.

Файл Java-программы для проверки связи через JDBC

Для следующих ниже примеров организации разных вариантов связи с БД через JDBC нужно подготовить файл StaffByJDBC.java с общим для всех примеров текстом:

public class StaffByJDBC
<
public static void main(String[] args)
<
String url = null;

if (args.length > 0) <
if (args[0].compareToIgnoreCase(«thin») == 0) <
url = «jdbc:oracle:thin:@localhost:1521:TEACHER»;
>
else if (args[0].compareToIgnoreCase(«oci») == 0) <
url = «jdbc:oracle:oci8:@TEACHER»;
>
else if (args[0].compareToIgnoreCase(«kprb») == 0) <
url = «jdbc:oracle:kprb:»;
>
>

if (url == null) <
System.out.println(«usage: StaffByJDBC [thin/oci]»);
return;
>

try <
DriverManager.registerDriver (
new oracle.jdbc.driver.OracleDriver());
>
catch (Exception e)

try <
Connection cn =
DriverManager.getConnection (url,»scott»,»tiger»);

Statement st = cn.createStatement();
ResultSet rs =
st.executeQuery («SELECT empno, ename FROM emp»);

while ( rs.next() ) <
System.out.println(«Number=» + rs.getString(1) + » » +
«Name=» + rs.getString(2) );
>

Работа с данными Oracle из внешних Java-программ


Работа с Oracle через тонкий драйвер

Трансляция и запуск программы (среда Unix — аналогично):

Работа с Oracle через толстый OCI-драйвер

Трансляция и запуск программы (среда Unix — аналогично):

Работа с данными Oracle из хранимых Java-программ


Обращение к БД из хранимых процедур

Загрузка, трансляция и запуск программы:

loadjava -user scott/tiger -oci8 -r StaffByJDBC.java

SQL> ALTER JAVA SOURCE «StaffByJDBC» COMPILE;

SQL> ALTER JAVA CLASS «StaffByJDBC» COMPILE;

SQL> CREATE OR REPLACE PROCEDURE liststaff (drivertype IN VARCHAR2)
AS LANGUAGE JAVA
NAME ‘StaffByJDBC.main (java.lang.String[])’;
/

PL/SQL procedure successfully completed.

Просмотр результатов — в трассировочном файле в каталоге ОС udump.

Особенности работы с kprb-драйвером

Работа с kprb-драйвером имеет свои отличия по отношению к работе со внешними драйверами:

  1. для хранимых программ явного подсоединения с БД не требуется — kprb-драйвер выполняет его неявно автоматически (код явного соединения из программ, написанных из расчета на внешнее соединение, будет проигнорирован)
  2. так как драйвер kprb не поддерживает AUTOCOMMIT, выполнять COMMIT или ROLLBACK в программе нужно явно
  3. устройством выдачи Sys.output по умолчанию является для kprb не экран, а трассировочные файлы в каталоге udump

Обращение к данным из триггеров Oracle

Специальных Java-триггеров в Oracle нет, и поэтому организация триггера на Java требует заведения внешней «оболочки» на PL/SQL, внутри которой делаются обращения к процедурам на Java, опубликованным для PL/SQL.

Вот как это может выглядеть:

CREATE TRIGGER scott.salary_check
BEFORE INSERT OR UPDATE OF sal, job ON scott.emp
FOR EACH ROW
WHEN (new.job <> ‘PRESIDENT’)
CALL check_sal(:new.job, :new.sal, :new.name);
/

Здесь CHECK_SAL должна быть опубликованной процедурой на Java.

Взаимодействие с базой данных через SQLJ

SQLJ представляет собой альтернативный JDBC способ работы с БД из Java-программ, использующий схему включающего языка/предкомпиляции. В отличие от JDBC, SQLJ позволяет использовать в программе только статические SQL-обращения к базе, однако исходный текст программ может выглядеть много компактнее.

Подобно Java-программам с JDBC, программы с SQLJ могут работать как на клиенте, так и на сервере.

SQLJ стандартизован комитетом ANSI. Более подробно о нем см. на web-узле консорциума SQLJ http://www.sqlj.org/.

Пример программы с использованием SQLJ

Типовой пример программы с использованием SQLJ (файл StaffBySQLJ.sqlj ):

import java.sql.*;
import sqlj.runtime.ref.DefaultContext;
import oracle.sqlj.runtime.Oracle;

#sql iterator MyIter (String ename, int empno, float sal);

public class StaffBySQLJ
<
public static void main (String args[]) throws SQLException
<
Oracle.connect
(«jdbc:oracle:thin:@localhost:1521:teacher»,
«scott», «tiger»);

Транслирование программы с SQLJ

Пример транслирования программы с SQLJ:

После этого в текущем каталоге появятся файлы (вариант версии 8.1.7):

StaffBySQLJ.class
StaffBySQLJ.java
StaffBySQLJ _SJProfile0.ser
StaffBySQLJ _SJProfileKeys.class
MyIter.class

Таким образом, программа sqlj не только предтстранслирует исходный яайл SQLJexample.sqlj, но и странслирует вслед порожденную ею же программу SQLJexample.java с учетом подготовленных свойств. Запуск конечного результата выглядит как обычно:

Более сложный пример транслирования:

sqlj -user=scott/tiger@jdbc:oracle:thin:@localhost:1521:teacher StaffBySQLJ.sqlj

Транслирование программ с SQLJ, предназначенных для исполнение на сервере, можно осуществлять

(а) явно (программа sqlj, как показано выше) с последующей загрузкой классов в БД (в этом случае их перед загрузкой удобно объединять в jar-файлы)
(б) неявно, путем загрузки файлов .sqlj в БД (автоматическая предтрансляция будет в этом случае выполнена.внутренними средствами Oracle).

Выполнение программы с SQLJ

Для возможности обращения программы c SQLJ, загруженной с помощью loadjava из jar-файла (или напрямую), можно выполнить

CREATE OR REPLACE PROCEDURE my_sqlj_example
AS LANGUAGE JAVA
NAME ‘StaffBySQLJ.main(java.lang.String[])’;

Программы с SQLJ, написанные для работы с БД извне (с клиентской стороны), всегда будут работоспособны и в качестве хранимых программ (то есть, на сервере). Обратное не обязательно верно (см. комментарий по поводу особенностей использования kprb-драйвера выше).

источник

Развертывание JDBC Driver Deploying the JDBC driver

Скачать драйвер JDBC Download JDBC Driver

При развертывании приложения, зависящего от драйвера Microsoft JDBC Driver для SQL Server Microsoft JDBC Driver for SQL Server , необходимо вместе с приложением распространять драйвер JDBC. When you deploy an application that depends on the Microsoft JDBC Driver для SQL Server Microsoft JDBC Driver for SQL Server , you must redistribute the JDBC driver together with your application. В отличие от компонентов доступа к данным Windows DAC, которые являются компонентами операционной системы Windows, драйвер JDBC считается компонентом SQL Server SQL Server . Unlike Windows Data Access Components (Windows DAC), which is a component of the Windows operating system, the JDBC driver is cons >SQL Server SQL Server .

Для развертывания драйвера JDBC в приложении используются два подхода. There are two approaches to deploying the JDBC driver with your application. При использовании одного файлы драйвера JDBC включаются как часть собственного настраиваемого пакета установки. One is to include the JDBC driver files as part of your own custom installation package. При втором подходе используется предоставляемый Майкрософт пакет установки JDBC, который можно скачать в Центре разработки драйвера Microsoft JDBC для SQL Server. The second approach involves using the JDBC installation package provided by Microsoft, which you can download from the Microsoft JDBC Driver for SQL Server Developer Center.

В следующих разделах описывается использование пакета установки в операционных системах Windows и UNIX. The following sections discuss how to use the JDBC installation package on Windows and UNIX operating systems.

Дополнительные общие сведения о развертывании приложений Java см. на веб-сайте Java. For information about deploying Java applications in general, see the Java website.

Развертывание JDBC Driver в системах Windows Deploying the JDBC driver on Windows systems

При развертывании JDBC Driver в операционных системах Windows необходимо распаковать ZIP-файл пакета установки, который обычно называется sqljdbc_ _ .zip . When you deploy the JDBC driver on Windows operating systems, you must unpack the zipped installation package, which is typically named sqljdbc_ _ .zip .

Развертывание JDBC Driver в системах UNIX Deploying the driver on UNIX systems

При развертывании драйвера JDBC в операционных системах UNIX необходимо использовать исполняемый файл в формате GZIP пакета установки, который обычно называется sqljdbc_ _ .tar.gz . When you deploy the JDBC driver on UNIX operating systems, you must use the gzip file version of the installation package, which is typically named sqljdbc_ _ .tar.gz .

До установки драйвера JDBC необходимо убедиться в том, что в системе пользователя установлены программы gzip и tar, и что папки, содержащие исполняемые файлы обеих программ, добавлены к переменной среды PATH. Before you install the JDBC driver, make sure that both the gzip and tar utilities are installed on the user’s system, and that the folders that contain the executables for both utilities are added to the PATH environment variable.

Чтобы распаковать сжатый TAR-файл, перейдите в каталог, в который нужно распаковать драйвер, и введите следующую команду: To unpack the zipped tar file, navigate to the directory where you want the driver unpacked and type the following command:

Чтобы распаковать TAR-файл, переместите его в каталог, в который нужно установить драйвер, и введите следующую команду: To unpack the tar file, move it to the directory where you want the driver installed and type the following command:

Законность распространения драйверов Legalities of driver redistribution

Драйверы JDBC Driver версий 6.0, 6.2, 6.4, 7.0, 7.2, 7.4 и 8.2 являются распространяемыми. The JDBC Driver versions 6.0, 6.2, 6.4, 7.0, 7.2, 7.4, and 8.2 are redistributable. В лицензионном соглашении ознакомьтесь с разделом Распространяемый код. Review the Distributable Code clause in the license agreements.

Драйверы JDBC версии 4.x являются устаревшими и не поддерживаются. The JDBC Driver versions 4.x are old and obsolete. Поддержка версии 4.x прекратилась еще до 2018 г. Support for 4.x expired before 2018.

источник

Добавить комментарий