Установка соединения
Для того, чтоб наш драйвер заработал, его нужно загрузить. Существует несколько способов это сделать, но здесь рассмотрим лишь один. Создадим класс
CreatingConnection, в котором увидим что к чему:
package ru.javatalks.faq.db;
/**
* 14.06.2009 16:08:32
*
* @author ctapobep
*/
public class CreatingConnection {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loading success!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Class.forName() служит для загрузки класса по его имени. Данный метод выбрасывает исключение, если нужный класс не найдем. Метод
newInstance() уже вызывать не нужно, как это делают в некоторых примерах, нам хватит просто загрузки класса. Если хотите, можете проверить его наличие в архиве подключенного выше коннектора. Загружать драйвер следует всего один раз на протяжении жизни приложения, но до того, как будет создаваться соединение с БД. Попробуйте запустить пример, если появилось сообщение "Driver loading success!", значит все прошло успешно. Если же на экране появилось java.lang.ClassNotFoundException, проверьте правильно ли вы прописали название класса, если и это не поможет, тогда Вы неверно подключили или не подключили совсем драйвер. Тогда вернитесь к рассмотрению пункта "Где и что скачать" и все перепроверьте.
Давайте теперь попробуем создать соединение к базе данных.
package ru.javatalks.faq.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 14.06.2009 16:08:32
*
* @author ctapobep
*/
public class CreatingConnection {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loading success!");
//у MySQL обязательно есть системная база,
//к ней и будем создавать соединение.
String url = "jdbc:mysql://localhost/mysql";
String name = "root";
String password = "";
try {
Connection con = DriverManager.getConnection(url, name, password);
System.out.println("Connected.");
con.close();
System.out.println("Disconnected.");
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Прежде, чем запускать програму, поговорим об основных моментах:
- Соединение здесь создается в строке
con = DriverManager.getConnection(url, name, password). Класс
DriverManager заведует драйверами, соединениями, а также трассировкой. В данном случае мы вызвали статический метод
getConnection(). Этот метод просматривает список драйверов и, если находит подходящий к указанному URL, то создает и возвращает соединение. В противном случае выбрасывает исключение с текстом: "No suitable driver found". В качестве аргументов данный метод принимает URL к базе, имя и пароль пользователя. По умолчанию для MySQL имя - root, пароль - пустая строка. Существуют также перегруженные версии этого метода, при желании можете на них взглянуть поближе, но нам они пока не понадобятся.
- URL к базе состоит из протокола:подпротокола://других_сведений. Также может потребоваться установить дополнительные параметры, например, сетевым драйверам нужен номер порта, а драйверам ODBC могут потребоваться различные атрибуты. Вобщем, в JDBC используется синтаксис описания источника данных, подобный обычным URL.
- протокол - jdbc, указывает, что в данном случае мы используем JDBC;
- подпротокол - зависит от выбранного нами сервера БД, необходим для определения JDBC драйвера;
- другие_сведенья - формат представления зависит от используемого протокола, в данном случае это адрес базы данных, т.к. она находится на нашем компьютере в host мы указываем адрес - localhost или 127.0.0.1, и название базы - mysql.
Теперь запустим наш пример. Если в результате вывело:
Quote:
Driver loading success!
Connected.
Disconnected.
то могу Вас поздравить, Вы успешно соединились и разорвали соединение с базой данных. В противном случае перепроверьте URL к БД.