Руководство по JDBC. Соединение.

В прошлом уроке мы изучили понятие драйвера JDBC и его типы. После того, как мы установили необходимый драйвер мы можем создать соединение с базой данных (далее – БД).

Для того, чтобы установить соединение с БД, нам необходимо выполнить следующие шаги:

  • Импортировать пакет JDBC в наш Java код.
  • Зарегистрировать JDBC драйвер.
  • Передать информацию для соединения с БД (URL, имя пользователя и пароль).
  • Создать соединение с помощью метода getConnection().

Рассмотрим каждый шаг по отдельности.


Импортирование пакета JDBC

Для импорта пакета JDBC мы используем стандартное ключевое слово import, которое говорит компилятору подключить необходимые классы.

Для подключения JDBC нам необходимо подключить пакет java.sql.*

В коде это выглядит таким образом:


   import java.sql.*;


Регистрация JDBC драйвера

После импорта JDBC мы должны зарегистрировать наш драйвер перед тем, как его использовать. Это процесс, с помощью которого файл класса драйвера загружается в память. После этого он может быть использован, как реализация интерфейса JDBC.

Существует два способа регистрации драйвера.

DriverManager.registerDriver()

В этом случае мы используем статический метод DriverManager.registerDriver() для регистрации драйвера.

В коде это выглядит следующим образом:


try {
            Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
        } catch (SQLException e) {
            System.out.println("Unable to load driver class.");
            e.printStackTrace();
        }
}

Class.forName()

Этот способ является наиболее распространённым. Мы используем метод Class.forName() для динамической загрузки класса драйвера в память, после чего происходит его автоматическая регистрация.

Данный способ является предпочтительным, так как он обеспечивает конфигурируемую и переносимую регистрацию драйверов.

В коде это выглядит, примерно, таким образом:


try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("Unable to load class.");
            e.printStackTrace();
        }
}


Передача информации о БД

После того, как мы зарегистрировали наш драйвер, мы можем установить соединение, используется метод DriverManager.getConnection().

Этот метод имеет три перегруженных варианта:

  • getConnection (String url)
  • getConnection (String url, Properties props)
  • getConnection (String url, String user, String password)

Как мы видим, каждый из этих методов требует URL нашей БД. Т.е. нам необходимо передать информацию о нашей БД.

Для различных БД URL различен.

Примеры:

MySQL

Driver name: com.mysql.jdbc.Driver

URL: jdbc:mysql://hostname/databaseName

ORACLE

Driver name: oracle.jdbc.driver.OracleDriver

URL: jdbc:oracle:thin:@hostname:portNumber/databaseName


Создание соединения
После того, как мы передали всю необходимую информацию, мы можем создать физическое соединение с БД.

Рассмотрим пример создания соединения с БД MySQL:


String URL = "jdbc:mysql://localhost/PROSELYTE_TUTORIAL";
String USER = "root";
String PASSWORD = "password";
Connection connection = DriverManger.getConnection(URL, USER, PASSWORD);


Закрытие соединения
После того, как закончим работу с нашей программой нам необходимо закрыть все соединения и освободить ресурсы. Если мы не сделаем этого вручную, это будет сделано сборщиком мусора при уничтожении объектов, которые не используются.

Но полагаться на уборщик мусора – это крайне плохая идея и пример дурного тона.

В коде это выглядит так:


connecion.close();

В ЭТОМ ПРИМЕРЕ ПРИЛОЖЕНИЯ все эти шаги показаны вместе. Советую более внимательно его изучить для более глубокого понимания материала.

В этом уроке мы рассмотрели соединение и разобрали все этапы его создания по отдельности.
В следующем уроке мы изучим такую сущность, как утверждения (Statements).