pdf / 2-JDBC
.pdfJDBC
v3.0
JDBC API
●Часть J2EE, J2SE
●Поддержка SQL99
●java.sql.*
●javax.sql.*
●Поддерживает распределённые, гетерогенные среды
●Основан на X/Open SQL CLI
Двухуровневая модель приложений
●Смешивание презентации и системной логики
●Приложение может быть привязано к конкретной базе данных
●Ограниченная
масштабируемость
Трех уровневая модель
Трёхуровневая модель
●Client tier
●Middle-tier server
Applications
An application server
JDBC driver(s)
●Underlying data source
Типы драйверов
●Type 1
Используют для доступа к базе другой драйвер, например ODBC.
●Type 2
Написаны на Java + native code для работы с native client library.
●Type 3
Java драйвера которые используют middleware server
●Type 4
Java драйвер с реализаций сетевого протокола взаимодействия с базой данных
Connection
●DriverManager
JDBC 1.0 API. Приложение должно знать URL для соединения.
●DataSource
JDBC 2.0 Optional Package API. Настройка прозрачна для приложения. Два расширения для J2EE:
ConnectionPoolDataSource
XADataSource
Исполнение запросов
●Statement
●PreparedStatement
●CallableStatement
Для работы с результатами:
●ResultSet
●RowSet (JavaBeans компонент с кэшированием данных и поддержкой любых табличных данных)
Escape Syntax
●Необходим для использования возможностей не имеющих стандартной записи на SQL
●Необходим для использования возможностей драйвера Покрывает:
●Scalar functions {fn <function-name> (argument list)}
{fn concat("Hot", "Java")}
{fn user()}
numeric, string, time, date, system, and conversion functions
●Date and time literals
{d 'yyyy-mm-dd'}
{t 'hh:mm:ss'}
{ts 'yyyy-mm-dd hh:mm:ss.f . . .'}
●Outer joins
{oj <outer-join>}
table {LEFT|RIGHT|FULL} OUTER JOIN {table | <outer-join>} ON searchcondition
Пример:
stmt.executeQuery("SELECT * FROM {oj TABLE1 LEFT OUTER JOIN TABLE2 ON DEPT_NO = 003420930}");