Программирование >>  Создание клиентов mysql 

1 ... 121 122 123 [ 124 ] 125 126 127 ... 201


После загрузки драйвера воспользуйтесь услугами менеджера драйверов для установления соединения с сервером. Для этого нужно сформировать URL-адрес соединения. Формат адреса таков:

jdbc:mysql: [узел] [ :порт]/база даиных[7параметр=зиачение]

[параметр=значение],..

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

Параметр autoReconnect

characterEncoding initialTimeout maxReconnects maxRows

password user

useUnicode

Описание

Если равен True, драйвер будет повторно подключаться к серверу в случае потери связи с ним; по умолчанию равен False

Если параметр равен True, то данный пара-

метр задает используемый набор символов

Задает интервал времени в секундах между попытками подключения к серверу (по умолчанию - 2 секунды)

Задает максимальное число повторных попыток чения к серверу (по умолчанию - 3)

Задает максимальное число записей, которое

получено в ответ на запрос; по умолчанию равен нулю,

т.е. ограничение отсутствует

Задает пароль для подключения

Задает имя пользователя

Если равен True, драйвер будет кодировать строки по стандарту Unicode; по умолчанию равен False

В рамках сеанса можно посылать произвольное число инструкций. Чтобы закрыть соединение,вызовитеметодс1озе().

В листинге 17.1 показана минимальная Java-программа, которая подключается к серверу и тут же отключается.

import Java, sql.*;

public class CoreConnect

public static void main(String[] Args) {



Извлечение данных 387

Загрузка драйвера, try

Class.forName( org.gjt.mm.mysql.Driver ).newlnstance();

catch (Exception e)

e.printStackTrace();

Подключение к базе данных. Connection с = DriverManager.getConnection( jdbc:mysql: localhost/test?user=root );

Закрытие соединения, с.close();

catch (SQLException e) {

e.printStackTrace0 ;

Извлечение данных

Прежде чем постлать запросы базе данных, необходимо создать объект класса Statement. Его можно многократно использовать в запросах. В классе Statement есть три метода выполнения запросов: execute (), executeQuery() и execute-UpdatM) Каждый из них в качестве аргумента принимает текст запроса. Метод executeQuery () возвращает объект класса ResultSet, содержащий результирующий набор записей. Мето Update () возвращает число записей, участвовавших в запросе (это особенно удобно для инструкций INSERT и UPDATE). Метод execute ) возвращает -1 в случае инструкции SELECT и число записей для остальных запросов. Его удобно использовать тогда, когда тип выполняемого запроса неизвестен заранее. В случае необходимости результирующий набор записей можно будет получить с помощью метода getResultSet ().

Объект класса ResultSet хранит указатель на текущую запись результирующего набора. Для получения первой записи необходимо вызвать метод next (). Этот метод удобно использовать в качестве условия цикла, так как по достижении конца набора он возвращает NULL. После извлечения записи можно определить значения ее полей с помощью одного из методов семейства qetX{). Полное имя метода соответствует типу возвращаемого значения. Например, метод getint () возвращает числовое представление ячейки, а метод возвращает объект класса Date. Можно вызывать любой метод - драйвер самостоятельно выполнит необходимое преобразование.

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

нумерация столбцов начинается с единицы. Если столбцы адресуются по имени, не-



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

В листинге 17.2 показана простая программа, которая извлекает данные из таблицы user. Обратите внимание на то, что программа пытается подключиться к серверу от имени пользователя root с явно неправильным паролем. Если будете экспериментировать с этой программой, подставьте корректные значения имени пользователя и пароля.

import j ava. sql. *;

public class CoreSelect {

public static void main(String[] Args) {

Загрузка драйвера, try

Class.forName( org.gj t.mm.mysql.Driver ).newlnstance

catch (Exception e)

e.printStackTraceO ;

Подключение к базе данных.

Connection с = DriverManager.getConnection(

jdbc:mysql: localhost/test?user=root );

Создание инструкции.

Statement stmt = с.createStatement();

Вьшолнение запроса.

ResultSet rs = stmt.executeQuery(

SELECT User, Host FROM user ORDER BY 1,2 );

Получение метаданных.

ResultSetMetaData rsmd = rs.getMetaData();

Вывод результатов запроса, while (rs.nextO) {

Перебор всех столбцов.

for (int i=l; i<=rsmd.getColmnnCount{); i++)

System.out.print( [ + rs.getString(i) + ] );

System.out.printIn( );



1 ... 121 122 123 [ 124 ] 125 126 127 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика