![]() |
![]() |
![]() |
Использование драйвера PostgreSQL В этом разделе рассматривается использование встроенного драйвера JDBC PostgreSQL. Начните с включения пути к файлу postgresql.jar в переменную CLASSPATH. Для этого можно либо задать значение переменной среды CLASSPATH, либо передавать путь в командной строке исполняемого файла при каждом запуске приложения Java. Дополнительную информацию о настройке пути к классам можно найти в инструкциях разработчика вашей виртуальной машины Java. Далее в процессе написания приложения Java необходимо обеспечить регистрацию класса Driver в программе. При прохождении через загрузчик классов Java класс Driver автоматически регистрируется в классе DriverManager; по этим данным JDBC узнает, какой вариант класса Driver должен использоваться при подключении к базе данных определенного типа. Например, при подключении к базе данных PostgreSQL должен использоваться класс драйвера PostgreSQL и т. д. Чтобы класс Dri ver был зарегистрирован загрузчиком классов, можно выполнить поиск по имени, как в небольшом фрагменте Java-программы, приведенном в листинге 12.1. Листинг 12.1. Поиск по имени класса try { Class.forName("org.postgresql.Dri ver"): } catch (ClassNotFoundException cnfe) { System.err.println("Couldn't find driver class:"): cnfe.printStackTrace(): } Метод Cl ass. forName выполняет поиск класса по имени. В данном примере для поиска используется имя «Driver». Загрузчик просматривает содержимое CLASSPATH и ищет класс с заданным именем. Если поиск оказывается успешным, загрузчик читает двоичное описание класса. Если класс не найден, инициируется исключение ClassNotFoundException; в нашем примере обработчик этого исключения выводит сообщение об ошибке. Если это произошло, значит, либо была допущена ошибка при построении драйвера, либо файл .jar отсутствует в пути CLASSPATH. После регистрации класса Driver наступает следующая стадия — подключение к базе данных PostgreSQL с использованием класса DriverManager. Класс Dri verManager отвечает за работу с URL-адресами JDBC, выбор подходящего драйвера и его дальнейшее применение для подключения к базе данных. URL-адреса JDBC состоят из трех частей, разделенных двоеточиями: jdbc: тил_дрдйвера : база_двнных Первая часть, jdbc, всегда остается постоянной и указывает на то, что подключение производится к источнику данных JDBC. Вторая часть, mun_dpaueepa, представляет тип базы данных, к которой вы хотите подключиться. Для подключения к базе данных PostgreSQL используется строка postgresql. Третья часть передается драйверу и используется им для поиска базы данных. Она имеет один из трех форматов: база_данных //хост/база_данных //хост:порт/бвза_данных В первом формате база данных PostgreSQL работает на локальном хосте со стандартным номером порта, а параметр база_даиных определяет имя базы данных для подключения. Во втором формате задается имя хоста и имя базы данных со стандартным номером порта. Третий формат позволяет задать номер порта. Даже при использовании URL-адреса первого типа подключение JDBC всегда производится через TCP/IP. Во всех примерах этой главы будет использоваться URL-адрес jdbc:postgresql:// localhost/booktown — мы подключаемся к базе данных booktown на хосте local host. Давайте попробуем объединить все, о чем говорилось в этой главе, и подключиться к базе данных. В листинге 12.2 приведена простая программа Java, открывающая подключение JDBC к базе данных booktown. Листинг 12.2. Простое подключение JDBC import Java.sql.DriverManager: import Java.sql.Connection: import Java.sql.SQLException; public class Examplel { public static void main(String[] argv) { System.out.printlnC'Checking if Driver is registered with DriverManager."): try { Class.forNaraeC'org.postgresql .Driver"): } catch (ClassNotFoundException cnfe) { System. out. printlnt "Couldn't find the driver!"); System. out. println( "Let's print a stack trace, and exit."): cnfe . pri ntStackTrace( ) ; System.exit(l) ; } System. out. pri ntln( "Registered the driver ok. so let's make a connection."): Connection с = null : try { // Во втором и третьем аргументах передаются соответственно // имя пользователя и пароль. Замените данными пользователя // в своей системе. с = DriverManager.getConnection("jdbc:postgresql ://localhost/booktown". "username". "password"); } catch (SQLException se) { System. out. printlnt "Couldn't connect: print out a stack trace and exit."): se.printStackTrace() ; System.exit(l): } if (c != null) System. out. printlnC'Hooray! We connected to the database!"); else . System. out. printlnC'We should never get here."); } } Далее при помощи объекта Connection выполняются любые операции с базой данных PostgreSQL Обратите внимание на первые три строки листинга 12.2. В них три команды import импортируют классы, необходимые для регистрации драйвера в объекте DriverManager, а также для создания объектов Connection и SQLException. В общем случае команда импортирования, обеспечивающая доступ к классам JDBC, имеет следующий синтаксис (класс — имя класса, экземпляр которого вы хотите создать): import java.sql .класс Если вы не уверены в том, какие именно классы вам нужны, импортируйте все классы JDBC следующей командой: import java.sql .* Учтите, что импортирование всех классов JDBC означает большое количество непроизводительных затрат. Чтобы программа работала с максимальной эффективностью, следует ограничиваться только теми классами, которые действительно необходимы для работы приложения. |
![]() |
![]() |
![]() |