Similar presentations:
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 (Архитектура)
Клиент использует интерфейсы JDBCAPI для доступа к данным
Драйвер 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.DriverManagerJDBC 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 KNURE13
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 <=> SQLtypes
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 <=> SQLtypes
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
JDK6я версия (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