7.1 Подключение к MySQL с помощью интерфейса JDBC DriverManager
При использовании JDBC вне приложения-сервера, класс DriverManager управляет установлением подключений.
Укажите классу DriverManager, какие драйверы JDBC следует использовать для создания подключений. Самый простой способ сделать это — использовать Class.forName() в классе, реализующем интерфейс java.sql.Driver. В MySQL Connector/J имя этого класса — com.mysql.cj.jdbc.Driver. С помощью этого метода можно использовать внешний конфигурационный файл для указания имени класса драйвера и параметров драйвера, используемых при подключении к базе данных.
Следующий фрагмент кода Java демонстрирует, как можно зарегистрировать MySQL Connector/J из метода main() вашего приложения. При тестировании этого кода сначала ознакомьтесь с разделом установки по адресу Глава 4, Установка Connector/J, чтобы убедиться, что вы правильно установили соединитель, и что CLASSPATH настроено. Также убедитесь, что MySQL настроен на прием внешних подключений по протоколу TCP/IP.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
// Notice, do not import com.mysql.cj.jdbc.*
// or you will have problems!
public class LoadDriver {
public static void main(String[] args) {
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
} catch (Exception ex) {
// handle the error
}
}
}
После регистрации драйвера в DriverManager можно получить экземпляр Connection, подключенный к определенной базе данных, вызвав DriverManager.getConnection():
Пример 7.1 Connector/J: Получение подключения из DriverManager
Если вы еще этого не сделали, пожалуйста, ознакомьтесь с частью DriverManager">Раздела 7.1, «Подключение к MySQL с помощью интерфейса JDBC DriverManager» выше, прежде чем работать с примером ниже.
Этот пример демонстрирует, как получить экземпляр Connection из DriverManager. Существует несколько различных подписей для метода getConnection(). Для более подробной информации о том, как их использовать, обратитесь к документации API, поставляемой с вашей JDK.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Connection conn = null;
...
try {
conn =
DriverManager.getConnection("jdbc:mysql://localhost/test?" +
"user=minty&password=greatsqldb");
// Do something with the Connection
...
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
После установления Connection его можно использовать для создания объектов Statement и PreparedStatement, а также для извлечения метаданных о базе данных. Это описано в следующих разделах.
Когда имя пользователя для подключения не указано, реализации Connector/J для подключаемых модулей проверки подлинности по умолчанию используют имя пользователя ОС, под которым выполняется приложение, для проверки подлинности на сервере MySQL (за исключением случаев использования подключаемого модуля проверки подлинности Kerberos; см. Раздел 6.12.2, «Подключение с помощью Kerberos» для получения подробной информации).
Имя пользователя считается не указанным только в том случае, если выполнены все следующие условия:
Метод
DriverManager.getConnection(String url, String user, String password)не используется.Свойство подключения
userне используется, например, в URL подключения или где-либо еще.Имя пользователя не указано в авторитете URL подключения, как в
jdbc:mysql://localhost:3306/testилиjdbc:mysql://@localhost:3306/test.
Обратите внимание, что если условие (1) или (2) не выполняется, и передаётся пустая строка, имя пользователя будет пустой строкой и не будет считаться не указанным.
© 2025 Oracle
Licensed under the GPLv2 License.