|
Программирование >> Создание клиентов mysql
После загрузки драйвера воспользуйтесь услугами менеджера драйверов для установления соединения с сервером. Для этого нужно сформировать 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( );
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |