Книга: Программирование на языке Ruby
10.4.6. Обертка вокруг DBI
10.4.6. Обертка вокруг DBI
Теоретически интерфейс DBI обеспечивает доступ к любым базам данных. Иными словами, один и тот же код должен работать и с Oracle, и с MySQL, и с PostgreSQL, и с любой другой СУБД, стоит лишь изменить одну строку, в которой указан нужный адаптер. Иногда эта идеология не срабатывает для сложных операций, специфичных для конкретной СУБД, но для рутинных задач она вполне годится.
Пусть имеется база данных под управлением Oracle и используется драйвер (он же адаптер), поставляемый вместе с библиотекой OCI8. Методу connect
следует передать достаточно информации для успешного соединения с базой данных. Все более или менее интуитивно очевидно.
require "dbi"
db = DBI.connect("dbi:OCI8:mydb", "user", "password")
query = "select * from people"
stmt = db.prepare(query)
stmt.execute
while row = stmt.fetch do
puts row.join(",")
end
stmt.finish
db.disconnect
Здесь метод prepare
— это некий вариант компиляции или синтаксического анализа запроса, который позже исполняется. Метод fetch
извлекает одну строку из результирующего набора и возвращает nil
, если строк не осталось (поэтому мы и воспользовались циклом while
). Метод finish
можно считать вариантом закрытия или освобождения ресурсов.
Полную информацию обо всех возможностях DBI можно найти в любом справочном руководстве. Список имеющихся драйверов приведен на сайте RubyForge и в архиве приложений Ruby.
- Глава 2 Первый уровень трехуровневой концепции мерчандайзинга. Внешний вид магазина и территория вокруг него
- Зачем оглядываться вокруг?
- Вокруг модулей
- Анализ и дискуссия вокруг диаграммы со стикерами
- Глава 11 Вокруг Интернета
- Шаг 1. Какие сообщества возникли вокруг вашего бренда?
- Модель доверия, сконцентрированного вокруг пользователя
- Танец вокруг архитектуры: как рисовать с помощью кода
- openSUSE 12.2: детектив вокруг релиза
- Процессоры вокруг нас: в одежде, в обуви, в устройствах
- Смотри вокруг себя
- Пример 33-1. сценарий-обертка