Основы проектирования приложений баз данных


         

Использование JDBC-драйверов


Язык Java позволяет реализовывать доступ к таблице базы данных как через JDBC-драйверы, так и через мост JDBC-ODBC.

В любом случае для доступа к базе данных выполняется следующая последовательность действий:

  1. Загружается класс драйвера. Это можно выполнить двумя способами:
    • явно загрузить класс драйвера, регистрирующий себя в списке драйверов: // Параметр определяет применение моста JDBC-ODBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Параметр определяет применение JDBC-драйвера для БД Oracle DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    • добавить имя драйвера в список системного свойства jdbc.drivers. Названия драйверов в списке разделяются символом двоеточия (например, jdbc.drivers=my.sql.Driver:wombat.sql.Driver;). При инициализации класс DriverManager просматривает системное свойство jdbc.drivers и в том случае, если пользователь добавил один или несколько драйверов, менеджер драйверов пытается их загрузить.

  2. Устанавливается соединение с базой данных. После загрузки драйвера можно использовать класс DriverManager для открытия соединения с источником данных: // Мост JDBC-ODBC указывается как jdbc:odbc, // а DSN - это имя ODBC источника данных Connection con = DriverManager.getConnection ( "jdbc:odbc:DSN", "login", "password"); // Подключение к БД Oracle для пользователя scott с паролем tiger Connection con = DriverManager.getConnection ( "jdbc:oracle:oci:@datai_com", "scott", "tiger");

Загружать и регистрировать драйверы можно как методом Class.forName, так и методом DriverManager.registerDriver. Но в первом случае экземпляр драйвера создается неявно, а во втором при регистрации драйвера явным образом создается экземпляр драйвера.

При создании объекта типа Connection метод getConnection определяет параметр, содержащий JDBC-URL и передаваемый менеджером драйверов последовательно всем зарегистрированным драйверам: если драйвер распознает URL, то он возвращает экземпляр класса, реализующий интерфейс Connection.

Содержание  Назад  Вперед