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 - Образец кода .