Использование CGI::Application::Plugin::DBH. Краткий обзор, примеры кода

Терминология

Дескриптор - handle - это уникальный номер, который используется для идентификации объектов. Обычно дескриптор используется при работе с API, при этом смысл значения дескриптора скрыт за этим API.

Смысл существования дескрипторов в том, чтобы как-то различать единообразные объекты между собой. Например, при открытии нескольких файлов для чтения, или при установлении нескольких соединений с базами данных.

CGI::Application::Plugin::DBH - используется для простого доступа к дескриптору DBI - dbh. Особенность работы с CGI::Application::Plugin::DBH состоит в том, что соединение с заранее определенной БД не устанавливается до тех пор, пока к этой БД не будет сделан хотя бы один запрос. Если приложение отработает без обращений к БД с запросами (например, на ранней стадии будет обнаружена ошибка и выполнение приложения будет прервано) - соединение не будет установлено. Экономия времени выполнения и ресурсов сервера очевидна.

Методы

dbh

Метод возвращает дескриптор базы данных DBI. Дескриптор создается при первом вызове данного метода, и просто возвращается при последующих обращениях к методу.

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

dbh_config

Метод dbh_config используется для установки параметров подключения к БД. Рекомендуется использовать метод внутри cgiapp_init. Главное, чтобы этот метод был выполнен задолго до того, как произойдет первый вызов dbh() , иначе все закончится очень печально - "500. Ошибочка вышла".

dbh_default_name

Метод dbh_default_name() указывает название дескриптора, который будет возвращаться "по-умолчанию", если имя дескриптора при вызове метода dbh() не указано. Используется при работе с двумя и более дескрипторами в одном приложении - очень удобно.

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

Полезные ссылки


http://search.cpan.org/perldoc?DBI

http://search.cpan.org/~markstos/CGI-Application-4.31/lib/CGI/Application.pm
http://search.cpan.org/~markstos/CGI-Application-Plugin-DBH-4.00/lib/CGI/Application/Plugin/DBH.pm