Как подключиться к базе данных MySQL с помощью Java

Java обеспечивает JDBC (Java DataBase Connectivity) как часть Java SDK (Software Development Kit). Используя этот API, очень легко подключиться к реляционной базе данных

и выполнять обычные операции, такие как запрос, вставка, обновление и удаление записей.

Хотя базовый API JDBC включен в Java, для подключения к конкретной базе данных, такой как MySQL или SQL Server, требуется дополнительный компонент, известный как драйвер базы данных. Этот драйвер базы данных является программным компонентом, который переводит основные вызовы JDBC в формат, понятный этой базе данных.

В этой статье давайте рассмотрим детали подключения к базе данных MySQL и как выполнить несколько запросов с ней.

Драйвер базы данных MySQL

Как объяснено выше, для подключения к базе данных MySQL необходим драйвер JDBC для MySQL. Это называется драйвером Connector / J и его можно скачать с сайта MySQL здесь.

После загрузки файла ZIP (или TAR.GZ) распакуйте архив и скопируйте файл JAR. MySQL-разъем-Java-bin.jar в подходящее место. Этот файл необходим для запуска любого кода, который использует драйвер JDBC MySQL.

Создание образца базы данных

Предполагая, что вы загрузили базу данных MySQL и настроили ее правильно

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

Подключитесь к базе данных, используя клиент по вашему выбору, и выполните следующие инструкции, чтобы создать образец базы данных.

create database sample;

Нам также нужны имя пользователя и пароль, чтобы иметь возможность подключиться к базе данных (если вы не хотите подключаться как администратор, что, как правило, плохая идея).

Следующее создает пользователя с именем TestUser кто будет подключаться к базе данных MySQL с той же машины, на которой он запущен локальный), используя пароль securepwd.

create user 'testuser'@'localhost' identified by 'securepwd';

Если вы подключаетесь к базе данных, работающей на другом компьютере (с именем remotemc), вам нужно использовать следующее (remotemc может быть именем хоста или IP-адресом):

create user 'testuser'@'remotemc' identified by 'securepwd';

Теперь, когда имя пользователя и пароль созданы, нам нужно предоставить доступ к образцу базы данных, созданному ранее.

grant all on sample.* to 'testuser'@'localhost';

Или, если база данных удалена:

grant all on sample.* to 'testuser'@'remotemc';

Теперь вы должны убедиться, что вы можете подключиться к базе данных

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

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Настройка пути к классам Java

Давайте теперь рассмотрим детали подключения к MySQL из Java.

, Первым шагом является загрузка драйвера базы данных. Это делается путем вызова следующего в подходящем месте.

Class.forName("com.mysql.jdbc.Driver");

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

try {
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException ex) {
// use the exception here
}

Очень часто этот код вызывается в статическом блоке в классе, поэтому программа немедленно завершается ошибкой, если драйвер не может быть загружен.

public class Sample
{
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException ex) {
System.err.println("Unable to load MySQL Driver");
}
}
}

Конечно, чтобы найти драйвер, программа должна быть вызвана с помощью JAR-драйвера (скачанного и извлеченного выше), включенного в путь к классу, следующим образом.

java -cp mysql-connector-java--bin.jar:...

Подключение к MySQL с Java

Теперь, когда мы вычеркнули детали загрузки драйвера MySQL из java, давайте подключимся к базе данных. Одним из способов создания соединения с базой данных является использование DriverManager.

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

И что это JDBCURL? Он указывает детали соединения, включая сервер, на котором расположена база данных, имя пользователя и так далее. Вот пример URL для нашего примера.

String jdbcUrl = "jdbc:mysql://localhost/sample?user=testuser&password=secrepwd";

Обратите внимание, что мы включили все параметры, необходимые для подключения, включая имя хоста (локальный), имя пользователя и пароль. (Включение пароля, подобного этому, НЕ является хорошей практикой, альтернативы см. Ниже.)

Используя это JDBCURL, Вот полная программа для проверки подключения.

public class Sample
{
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException ex) {
System.err.println("Unable to load MySQL Driver");
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = "jdbc:mysql://localhost/sample?user=testuser&password=securepwd";
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println("Connected!");
con.close();
}
}

Обратите внимание, что соединение с базой данных является ценным ресурсом в программе и должно быть правильно закрыто, как указано выше. Приведенный выше код, однако, не закрывает соединение в случае исключения. Чтобы закрыть соединение на нормальном или ненормальном выходе, используйте следующую схему:

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println("Connected!");
}

Как отмечалось выше, вставлять пароль в URL JDBC — плохая идея. Чтобы указать имя пользователя и пароль напрямую, вы можете использовать следующую опцию подключения.

String jdbcUrl = "jdbc:mysql://localhost/sample";
try(Connection con = DriverManager.getConnection(jdbcUrl, "testuser", "securepwd")) {
}

Запросы к базе данных с Java

Теперь, когда соединение с базой данных установлено, давайте посмотрим, как выполнить запрос, такой как запрос версии базы данных:

select version();

Запрос выполняется в Java следующим образом. утверждение Объект создан, и запрос выполняется с использованием ExecuteQuery () метод, который возвращает ResultSet.

String queryString = "select version()";
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

Распечатать версию с ResultSet следующее. 1 ссылается на индекс столбца в результатах, начиная с 1.

while ( rset.next()) {
System.out.println("Version: " + rset.getString(1));
}

После обработки результатов объекты должны быть закрыты.

rset.close();
stmt.close();

И это охватывает все, что нужно для подключения к MySQL из Java и выполнения простого запроса.

Вы использовали JDBC с MySQL в своих проектах? Какие проблемы у вас возникли с базами данных и Java? Пожалуйста, дайте нам знать в комментариях ниже.

Ссылка на основную публикацию
Adblock
detector