Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Последовательность действий для подключения к СУБД Oracle




Для того чтобы подключиться к СУБД и выполнить запрос, необходимо написать код для выполнения следующих действий:

1. Import Packages

2. Register the JDBC Drivers

3. Open a Connection to a Database

4. Create a Statement Object

5. Execute a Query and Return a Result Set Object

6. Process the Result Set

7. Close the Result Set and Statement Objects

8. Make Changes to the Database

9. Commit Changes

10. Close the Connection

Шаг 1.

import java.sql.*; // стандартный пакет JDBC

import oracle.jdbc.driver.*; // расширение JDBC для Oracle import oracle.sql.*; // особенности языка SQL для Oracle

Необходимо переменной classpath указать положение драйвера JDBC ([ORACLE_HOME\jdbs\lib\zip-классы]). Сделать это можно 2

способами:

1. через переменную среды окружения

2. при компиляции и запуске указать ключ javac -classpath ".; ORACLE_HOME\jdbs\lib\classes12.zip; ORACLE_HOME\jdbs\lib\nls_charset12.zip"

Шаг 2.

Данная операция осуществляется вызовом статического метода:

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

Шаг 3.

Для открытие соединения вызывается метод getConnection() класса DriverManager, возвращающий объект типа Connection.

getConnection(String URL, String user, String password); Строка URL выглядит следующим образом:

jdbc:oracle:<drivertype>:@<database>.

Например,

DriverManager.getConnection ("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");

или

DriverManager.getConnection("jdbc:oracle:oci8:@(description=(address=(host=myhost)(protocol=tcp)(port=1521)(connect_data=(sid=orcl)))","scott","tiger");

Connection conn = DriverManager.getConnection

("jdbc:oracle:oci8:@mics", "stud01", "stud01");

Шаг 4.

Создание объекта Statement для описания запроса используется метод createStatement класса соединения

Statement stmt = conn.createStatement();

Шаг 5.

Для выполнения запроса к БД используется метод executeQuery класса Statement. Полученный резульат возвращается в переменную класса ResultSet, которую в дальнейшем необходимо обработать.

ResultSet rset = stmt.executeQuery ("SELECT ename FROM emp");

Шаг 6.

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

Для извлечения данных используется метод getXXX() класса ResultSet, где

XXX – предопределенный тип Java.

while (rset.next())

System.out.println (rset.getString(1));

Шаг 7.

Необходимо после использования явно закрывать экземпляры типов Statement и ResultSet вызовом метода close().

Драйвер не содержит метод finalizer(), поэтому очистка памяти происходит при вызове close().

Если переменная rset имеет тип ResultSet, а stmt – Statement, то

rset.close();

stmt.close();

Шаг 8.

Для записи данных в базу через операции Insert или Update используется класс PreparedStatement. Объект данного класса позволяет выполнить выражение с переменным числом входных параметров.

Для подстановки значений в выражение PreparedStatement используется метод setXXX() класса PreparedStatement.

Например,

PreparedStatement pstmt =conn.prepareStatement ("insert into EMP (EMPNO, ENAME) values (?,?)");

// Add LESLIE as employee number 1500

pstmt.setInt (1, 1500); // The first? is for EMPNO

pstmt.setString (2, "LESLIE"); // The second? is for ENAME

Do the insertion pstmt.execute ();

Шаг 9.

По умолчанию, операции DML (Insert, Update, Delete) фиксируются автоматически после их выполнения. Для отключения такого режима используется команда conn.setAutoCommit(false);

Если автоматический режим отключен, то необходимо вручную выполнять операции commit и rollback:

conn.commit() или conn.rollback()

Неявный commit всегда срабатывает при разрыве соединения или выполнении функций DDL.

Шаг 10.

После завершения работы необходимо закрыть соединение conn.close()

Рассмотрим пример соединения с СУБД Oracle

import java.sql.*; import java.io.*; import java.awt.*; class JdbcTest {

 

public static void main (String args []) throws SQLException { // Load Oracle driver

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@myhost:1521:ORCL","scott", "tiger"); // Query the employee names

Statement stmt = conn.createStatement ();

ResultSet rset = stmt.executeQuery ("SELECT ename FROM emp");

while (rset.next ())

System.out.println (rset.getString (1));

//close the result set, statement, and the connection

rset.close(); stmt.close(); conn.close();

}}

 





Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 229 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2806 - | 2369 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.