Какой интерфейс БД Perl я должен использовать?

ls -1tr | rename -vn 's/.*/our $i;if(!$i){$i=1;} sprintf("%04d.jpg", $i++)/e'

rename -vn - удалить n для режима без теста

{$ i = 1;} - номер запуска управления

"% 04d.jpg" - контрольный счет ноль 04 и установить выходное расширение .jpg

16
задан brian d foy 7 November 2008 в 23:00
поделиться

10 ответов

Если Вы просто ищете базу данных низкого уровня access— Вы подаете его любая строка SQL (дополнительно с заполнителями и связываете значения), и это выполняет Ваш запрос и дает Вам, поддерживают results— тогда да, DBI является Вашим лучшим выбором, безусловно.

, Если Вы хотите высокоуровневый интерфейс (т.е. тот, который требует минимального использования необработанного SQL в Вашем коде) тогда существует несколько ORMs ( объектно-реляционные картопостроители ) доступны для Perl. Проверьте страница ORM в Perl 5 wiki Основы Perl для получения дополнительной информации и ссылках. (Если Вы хотите справку, выбирающую среди них, или имеете конкретные вопросы, Вы могли бы сузить фокус этого вопроса или возможно отправить другой.)

29
ответ дан 30 November 2019 в 15:11
поделиться

DBI является "низкоуровневым" интерфейсом между Perl и DBMS. Это - в значительной степени единственный реалистический выбор для того, чтобы сделать это. Сопоставимый с JDBC в Java. Вы были бы сумасшедшими (или имели бы очень определенный вариант использования) выбрать что-либо кроме DBI для Вас, низкий уровень взаимодействует через интерфейс между Perl и базой данных.

вдобавок к DBI, существуют различные объектные/реляционные картопостроители, которые делают работу с базой данных намного легче и более чистой.

Некоторые общие/больше популярные -

18
ответ дан 30 November 2019 в 15:11
поделиться

Если Вы приняли решение использовать плоскость DBI для задачи, которой не нужен ORM, я настоятельно рекомендую, чтобы Вы смотрели на DBIx:: Простой .

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

Сделал Вы когда-нибудь находили, что необходимо было искать по-видимому простые вещи в DBI документация, как получение результатов запроса как arrayref (строки) хешей (столбцы и их значения)? С DBIx::Simple это просто:

# DBI
my $rows = $dbh->selectall_arrayref($sql, { Slice => {} });
                 # tell it we want "hashes" (yuck!) ^^^^

# DBIx::Simple
my $rows = $db->query($sql)->hashes; # does the same as the above code underneath!

Смотрят на эти примеры для больше. Кроме того, интеграция с SQL:: Краткий обзор делает простые запросы бризом. Это использует его во всем моем коде, где я использовал бы DBI прежде, и я не оглядываюсь назад.

10
ответ дан 30 November 2019 в 15:11
поделиться

Стоит указать что подавляющее большинство "высокоуровневых" интерфейсов (как SQL:: Краткий обзор) и (DBIx:: Простой), используют сам DBI, на самом деле выполняя запросы. DBI является в значительной степени принятым стандартным методом для соединения с базой данных в Perl.

4
ответ дан 30 November 2019 в 15:11
поделиться

Если Вы хотите работать с объектами (с самоанализом!), смотрите на Fey:: ORM, который реализует ORM на основе Американского лося. Это, также имеет очень SQL как синтаксис, таким образом, это соответствует моему основанному на RDBMS мозгу немного лучше, чем некоторые из других платформ ORM.

3
ответ дан 30 November 2019 в 15:11
поделиться

Взгляните на Класс:: DBI также.

1
ответ дан 30 November 2019 в 15:11
поделиться

По-моему, DBI является действительно хорошим выбором. Я использовал DBD:: mysql активно и найденный им, чтобы быть действительно хорошим решением.

1
ответ дан 30 November 2019 в 15:11
поделиться

Мы используем модуль DBI во всех наших проектах также. Много раз мы создаем пользовательский пакет сверху его для определенного приложения, но под этим базовый модуль DBI. И часто просто легче использовать функции модуля DBI непосредственно.

1
ответ дан 30 November 2019 в 15:11
поделиться

DBI является большим, но качество модулей DBD может варьироваться. Я был укушен 'функцией' в одной из версий DBD:pg. Это любило загружать полные данные Вашего результата в память, а не межпоело по нему с курсорами.

Как обычно - программист Caveat.

1
ответ дан 30 November 2019 в 15:11
поделиться

Скалы DBI! но для надлежащего полнофункционального ORM, который является быстрым движением для DBIx:: Класс все время.

1
ответ дан 30 November 2019 в 15:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: