[2021.5] Ruby/DBI はすでに完全に廃れています。'dbi' gem パッケージは 2010 年が最終です。'activerecord' が代替です。
Ruby/DBIライブラリは、データベースにアクセスするためのクラス、SQLのデータ型に対応するクラス、およびその他のクラスからなります。また、これらのクラスをサポートするためのモジュールもあります。
クラス名 主なクラスの内容
----------------------------------- ----------------------------
Object
Array
DBI::Row 行を表すクラス
ColumnInfo 列に関する情報
DBI::Base
DBI::BaseDatabase
DBI::BaseDriver
DBI::BaseStatement
DBI::Binary SQLのバイナリ型
DBI::Date SQLの日付型
DBI::Handle
DBI::DatabaseHandle データベースの操作
DBI::DriverHandle
DBI::StatementHandle カーソル操作および列情報
DBI::SQL::BasicQuote::Coerce
DBI::SQL::PreparedStatement
DBI::Time SQLの時刻型
DBI::Timestamp SQLの日時型
RuntimeError
DBI::Error
DBI::DatabaseError
DBI::DataError
DBI::IntegrityError
DBI::InternalError
DBI::NotSupportedError
DBI::OperationalError
DBI::ProgrammingError
DBI::InterfaceError
DBI::NotImplementedError
DBI::Warning
モジュール名 ---------------------------- DBI DBI::DBD DBI::SQL DBI::SQL::BasicBind DBI::SQL::BasicQuote DBI::Utils DBI::Utils::ConvParam DBI::Utils::TableFormatter DBI::Utils::XMLFormatter
DBIモジュールは、DBMSへ接続するためのクラスメソッドが定義されています。
connectメソッドは、DBI::DatabaseHandleオブジェクトを返す。
DBI::DatabaseHandleクラスは、データベースに対してSQL文の実行などを行うためのクラスです。
| スーパークラス: | DBI::Handle
|
|---|---|
| includeするクラス: | DBI::Utils::ConvParamモジュール
|
ColumnInfoの配列。表が見つからない場合は、[]を返す。
DBI::Rowオブジェクトの配列で返す。
DBI::Rowオブジェクト。取り出す行がなければ、nilを返す。
ブロック内でcommitまたはrollbackメソッドを呼び出すと、そこまでのSQL文をコミットまたはロールバックする。ブロックからは自動的には抜けない。
transactionメソッドは入れ子にしてもよい。内側のtransactionのブロック内でcommitまたはrollbackした場合は、内側のブロック内のSQL文だけが影響を受ける。
DBI::StatementHandleクラスは、カーソル操作、列情報を得るため、あるいは事前コンパイルしたSQL文の実行のために使われます。
SQL文を事前にコンパイルしても、PostgreSQL、MySQL、SQLiteのいずれでも効果がないので、本書では割愛します。
| スーパークラス: | DBI::Handle
|
|---|---|
| includeするモジュール: | DBI::Utils::ConvParamモジュール、Enumerableモジュール |