JDBC - подключения к базе данных

После установки соответствующего драйвера пора установить соединение с базой данных с помощью JDBC.

Программирование, необходимое для установления соединения JDBC, довольно простое. Вот эти четыре простых шага -

  • Import JDBC Packages: Добавить import операторы в вашу программу Java, чтобы импортировать необходимые классы в ваш код Java.

  • Register JDBC Driver: Этот шаг заставляет JVM загружать желаемую реализацию драйвера в память, чтобы она могла выполнять ваши запросы JDBC.

  • Database URL Formulation: Это необходимо для создания правильно отформатированного адреса, указывающего на базу данных, к которой вы хотите подключиться.

  • Create Connection Object:Наконец, запрограммируйте вызов метода getConnection () объекта DriverManager , чтобы установить фактическое соединение с базой данных.

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

В Import операторы сообщают компилятору Java, где найти классы, на которые вы ссылаетесь в своем коде, и помещаются в самое начало исходного кода.

Чтобы использовать стандартный пакет JDBC, который позволяет выбирать, вставлять, обновлять и удалять данные в таблицах SQL, добавьте в исходный код следующие операции импорта:

import java.sql.* ;  // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support

Зарегистрировать драйвер JDBC

Вы должны зарегистрировать драйвер в своей программе, прежде чем использовать его. Регистрация драйвера - это процесс, с помощью которого файл класса драйвера Oracle загружается в память, поэтому его можно использовать как реализацию интерфейсов JDBC.

Вам нужно сделать эту регистрацию только один раз в вашей программе. Вы можете зарегистрировать драйвер одним из двух способов.

Подход I - Class.forName ()

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

В следующем примере используется Class.forName () для регистрации драйвера Oracle -

try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

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

try {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
catch(IllegalAccessException ex) {
   System.out.println("Error: access problem while loading!");
   System.exit(2);
catch(InstantiationException ex) {
   System.out.println("Error: unable to instantiate driver!");
   System.exit(3);
}

Подход II - DriverManager.registerDriver ()

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

Вам следует использовать метод registerDriver (), если вы используете JVM, не совместимую с JDK, например, предоставленную Microsoft.

В следующем примере registerDriver () используется для регистрации драйвера Oracle -

try {
   Driver myDriver = new oracle.jdbc.driver.OracleDriver();
   DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex) {
   System.out.println("Error: unable to load driver class!");
   System.exit(1);
}

Формулировка URL базы данных

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

  • getConnection (строковый URL)

  • getConnection (строковый URL, свойство свойства)

  • getConnection (строковый URL, строковый пользователь, строковый пароль)

Здесь для каждой формы требуется база данных URL. URL-адрес базы данных - это адрес, который указывает на вашу базу данных.

Формулирование URL-адреса базы данных - это то место, где возникает большинство проблем, связанных с установлением соединения.

В следующей таблице перечислены популярные имена драйверов JDBC и URL-адреса базы данных.

СУБД Имя драйвера JDBC Формат URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://имя хоста / имя базы данных
ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@имя хоста: номер порта: имя базы данных
DB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:имя хоста: номер порта / имя базы данных
Sybase com.sybase.jdbc.SybDriver jdbc:sybase:Tds:имя хоста: номер порта / имя базы данных

Вся выделенная часть в формате URL является статической, и вам нужно изменить только оставшуюся часть в соответствии с настройками вашей базы данных.

Создать объект подключения

Мы перечислили три формы DriverManager.getConnection() метод для создания объекта подключения.

Использование URL-адреса базы данных с именем пользователя и паролем

Наиболее часто используемая форма getConnection () требует, чтобы вы передавали URL-адрес базы данных, имя пользователя и пароль :

Предполагая, что вы используете Oracle thin драйвер, вы укажите значение host: port: databaseName для части URL-адреса базы данных.

Если у вас есть хост с TCP / IP-адресом 192.0.0.1 с именем хоста amrood, и ваш слушатель Oracle настроен на прослушивание порта 1521, а имя вашей базы данных - EMP, тогда полный URL-адрес базы данных будет -

jdbc:oracle:thin:@amrood:1521:EMP

Теперь вам нужно вызвать метод getConnection () с соответствующим именем пользователя и паролем, чтобы получить Connection объект следующим образом -

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);

Использование только URL-адреса базы данных

Для второй формы метода DriverManager.getConnection () требуется только URL-адрес базы данных -

DriverManager.getConnection(String url);

Однако в этом случае URL-адрес базы данных включает имя пользователя и пароль и имеет следующую общую форму:

jdbc:oracle:driver:username/password@database

Итак, указанное выше соединение может быть создано следующим образом -

String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
Connection conn = DriverManager.getConnection(URL);

Использование URL-адреса базы данных и объекта свойств

Третья форма метода DriverManager.getConnection () требует URL-адреса базы данных и объекта Properties -

DriverManager.getConnection(String url, Properties info);

Объект Properties содержит набор пар "ключевое слово-значение". Он используется для передачи свойств драйвера драйверу во время вызова метода getConnection ().

Чтобы установить такое же соединение, как в предыдущих примерах, используйте следующий код -

import java.util.*;

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );

Connection conn = DriverManager.getConnection(URL, info);

Закрытие соединений JDBC

В конце вашей программы JDBC требуется явно закрыть все соединения с базой данных для завершения каждого сеанса базы данных. Однако, если вы забудете, сборщик мусора Java закроет соединение, когда очистит устаревшие объекты.

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

Чтобы убедиться, что соединение закрыто, вы можете добавить в свой код блок finally. Блок finally всегда выполняется независимо от того, возникает исключение или нет.

Чтобы закрыть указанное выше открытое соединение, вы должны вызвать метод close () следующим образом:

conn.close();

Явное закрытие соединения сохраняет ресурсы СУБД, что порадует администратора базы данных.

Для лучшего понимания мы предлагаем вам изучить наш учебник JDBC - Образец кода .