JDBC
JDBC
JDBC (стандарты)
JDBC (Архитектура)
JDBC (Архитектура)
JDBC драйвера
Общая схема
Параметры подключения
Параметры подключения
Установка соединения
Установка соединения
DriverManager
Строка соединения
Statements
ResultSet
Исключение SQLException
Java types <=> SQL types
Java types <=> SQL types
Транзакции
Транзакции (уровни)
Apache Derby
Apache Tomcat
Software

JDBC, стандарты

1. JDBC

2. JDBC

API для доступа к данным
RDBMS
Spreadsheets
...
Является частью JSE/JEE
Kolesnikov D.O. SED KNURE
2

3. JDBC (стандарты)

Технология появилась 1997г.
Поддержка стандартов
JDBC 3.0 ~ SQL 99
JDBC 4.0 ~ SQL 2003 (Java 6)
JDBC 4.1 ~ SQL 2003 (Java 7)
Kolesnikov D.O. SED KNURE
3

4. JDBC (Архитектура)

JDBC API
Классы и интерфейсы из java(x).sql
реализация от поставщика драйвера
Основные интерфейсы
Connection
Statement
ResultSet
Kolesnikov D.O. SED KNURE
4

5. JDBC (Архитектура)

Клиент использует интерфейсы JDBC
API для доступа к данным
Драйвер JDBC реализует интерфейсы
Kolesnikov D.O. SED KNURE
5

6. JDBC драйвера

Четыре типа JDBC драйверов:
(предпочтительны тип 3 и 4)
1.
Мост JDBC-ODBC <=> ODBC
2.
JDBC <=> Вызов native библиотек
3.
Pure Java <=> сетевой протокол
4.
Pure Java <=> проприетар. протокол
Kolesnikov D.O. SED KNURE
6

7. Общая схема

1.
Установка соединения
2.
Получение statement
3.
Выполнение запроса
4.
Получение и обработка данных
Kolesnikov D.O. SED KNURE
7

8. Параметры подключения

Параметры подключения Oracle (1521)
Класс драйвера: oracle.jdbc.OracleDriver
URL: jdbc:oracle:thin:@localhost:sample
Имя пользователя: user
Пароль: 123
Параметры подключения MySQL
Класс драйвера: com.mysql.jdbc.Driver
URL: jdbc:mysql://localhost/sample
Имя пользователя: root
Пароль: 123
Kolesnikov D.O. SED KNURE
8

9. Параметры подключения

Параметры подключения Derby
Класс драйвера:
org.apache.derby.jdbc.ClientDriver
URL: jdbc:derby://localhost/sample
Имя пользователя: test
Пароль: test
Kolesnikov D.O. SED KNURE
9

10. Установка соединения

Класс java.sql.DriverManager
JDBC 1.0
указывают URL
класс загружает драйвера из CLASSPATH
Интерфейс javax.sql.DataSource
JDBC 2.0
более предпочтительный способ, т.к.
реализацию DS можно менять без изменения
кода приложения.
Kolesnikov D.O. SED KNURE
10

11. Установка соединения

Возможно получить соединение и с
помощью следующих интерфейсов.
javax.sql.ConnectionPoolDataSource
поддерживает
кеширование и
реиспользование физических соединений
позволяет увеличить производительность и
масштабируемость приложения
javax.sql.XADataSource
поставщик соединений, которые могут
участвовать в распределенных транзакциях
Kolesnikov D.O. SED KNURE
11

12. DriverManager

Class.forName(
"org.apache.derby.jdbc.ClientDriver");
Connection con =
DriverManager.getConnection(URL);
URL:
jdbc:derby://localhost/sample;
create=true;user=test;password=test
Kolesnikov D.O. SED KNURE
12

13. Строка соединения

Kolesnikov D.O. SED KNURE
13

14. Statements

Позволяют выполнить запрос к DS.
Statement
PreparedStatement
CollableStatement
Kolesnikov D.O. SED KNURE
14

15. ResultSet

Инкапсулирует результат запроса.
Курсор
ResultSet#next()
Получение данных
ResultSet#getString(int/String)
ResultSet#getLong(int/String)
...
Kolesnikov D.O. SED KNURE
15

16. Исключение SQLException

Выбрасывают многие методы JDBC
Проверяемое исключение
Пример обработки
Kolesnikov D.O. SED KNURE
16

17. Java types <=> SQL types

Java types <=> SQL
types
SQL type
BIT
CHAR
VARCHAR
DOUBLE
FLOAT
INTEGER
REAL
<=>
<=>
<=>
<=>
<=>
<=>
<=>
<=>
Java type
Boolean
String
String
Double
Double
Integer
Double
Kolesnikov D.O. SED KNURE
17

18. Java types <=> SQL types

Java types <=> SQL
types
DATE
TIME
BLOB
CLOB
<=>
<=>
<=>
<=>
java.sql.Data
java.sql.Time
java.sql.Blob
java.sql.Clob
Kolesnikov D.O. SED KNURE
18

19. Транзакции

Методы Connection:
setAutoCommit(boolean)
commit()
rollback()
setTransactionIsolation(int)
Kolesnikov D.O. SED KNURE
19

20. Транзакции (уровни)

Константы Connection:
TRANSACTION_READ_UNCOMMITTED
TRANSACTION_READ_COMMITTED
TRANSACTION_READ_REPEATABLE_READ
TRANSACTION_READ_SERIALIZABLE
Kolesnikov D.O. SED KNURE
20

21. Apache Derby

RDBMS
Сайт проекта: http://db.apache.org/derby/
Плагин для Eclipse:
derby_core_plugin_10.8.2.zip
derby_ui_doc_plugin_1.1.3.zip
Установка: распаковать в ECLIPSE-HOME
Kolesnikov D.O. SED KNURE
21

22. Apache Tomcat

Контейнер сервлетов и JSP
Сайт проекта: http://www.tomcat.apache.org
Установка:
скачать zip архив Tomcat 6
распаковать
установить переменную среды JAVA_HOME
Kolesnikov D.O. SED KNURE
22

23. Software

JDK
6я версия (6u37)
http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.html
7я версия (7u9)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html
Eclipse IDE for Java EE Developers
http://eclipse.org/downloads/packages/release/indigo/sr2
Kolesnikov D.O. SED KNURE
23
English     Русский Правила