Skip to content

DBIx::Custom Documents

yuki-kimoto edited this page Sep 7, 2012 · 35 revisions

DBIx::Custom Documents

DBIx::Custom is a DBI extended class to execute insert, update, delete, and select statement easily. DBIx::Custom has many useful features. Compared to other O/R mapper modules, it is easy to learn, because DBIx::Custom has many SQL-like syntax.

This is an example.

use DBIx::Custom;

# Connect to database
my $dbi = DBIx::Custom->connect(dsn => $dsn);

# Insert
$dbi->insert({id => 1, title => 'Perl'}, table => 'book');

# Update
$dbi->update({title => 'Perl'}, table => 'book', where => {id => 1});

# Delete
$dbi->delete(where => {id => 1}, table => 'book');

# Select
my $rows = $dbi->select(table => 'book')->all;

Features

DBIx::Custom have the following features.

  • Execute insert, update, delete, or select statement easily

  • Create where clause flexibly

  • Named place holder support

  • Model support

  • Connection manager support

  • Choice your favorite relational database management system, MySQL, SQLite, PostgreSQL, Oracle, Microsoft SQL Server, Microsoft Access, DB2 or anything,

  • Filtering by data type or column name

  • Create order by clause flexibly

  • Fast multiple data insert support

  • Bulk insert support (MySQL, PostgreSQL)

If you search O/R mapper like Ruby's ActiveRecord or think DBIx::Custom is very complex or think DBIx::Simple don't have enough features, I recommend DBIx::Custom for you. DBIx::Custom also have SQL generation features like SQL::Abstruct. DBIx::Custom is not depended on specific RDBMS. you can use this module with any RDMBS.

Installation

Connect to database

  • Connect to Database

    • Connect to MySQL

    • Connect to PostgreSQL

    • [http://d.hatena.ne.jp/perlcodesample/20110509/1307363867:title=SQLiteへ接続する]

    • [http://d.hatena.ne.jp/perlcodesample/20110512/1307874412:title=Oracleへ接続する]

    • [http://d.hatena.ne.jp/perlcodesample/20110515/1307874747:title=Microsoft SQL Serverへ接続する]

    • [http://d.hatena.ne.jp/perlcodesample/20110513/1307874545:title=Microsoft Accessへ接続する]

    • [http://d.hatena.ne.jp/perlcodesample/20110514/1307874676:title=DB2へ接続する]

Query execution

  • [http://d.hatena.ne.jp/perlcodesample/20110708/1313644365:title=SQLを実行する execute]

    • [http://d.hatena.ne.jp/perlcodesample/20110916/1319239908:title=executeのオプション]

  • [http://d.hatena.ne.jp/perlcodesample/20110129/1300165343:title=行の挿入 insert]

  • [http://d.hatena.ne.jp/perlcodesample/20110130/1300165343:title=行の更新 update]

  • [http://d.hatena.ne.jp/perlcodesample/20110201/1300165343:title=すべての行の更新 update_all]

  • [http://d.hatena.ne.jp/perlcodesample/20110202/1300165343:title=行の削除 delete]

  • [http://d.hatena.ne.jp/perlcodesample/20110203/1300165343:title=すべての行の削除 delete_all]

  • [http://d.hatena.ne.jp/perlcodesample/20110210/1300165343:title=行の選択 select]

    • [http://d.hatena.ne.jp/perlcodesample/20110925/1320313957:title=whereオプション]

  • [http://d.hatena.ne.jp/perlcodesample/20110814/1317875850:title=行の件数を取得する count]

Fetching rows

  • [http://d.hatena.ne.jp/perlcodesample/20110709/1313644704:title=行をフェッチする]

  • [http://d.hatena.ne.jp/perlcodesample/20120402/1333368751:title=便利なフェッチ方法]

"where" clause dinamic generation

  • [http://d.hatena.ne.jp/perlcodesample/20110924/1320313384:title=動的なWhere句の生成]

  • [http://d.hatena.ne.jp/perlcodesample/20110624/1311042215:title=or条件による検索]

  • [http://d.hatena.ne.jp/perlcodesample/20110204/1300165343:title=Where句で日付の範囲を指定する]

"order by" clause dinamic generation

  • [http://d.hatena.ne.jp/perlcodesample/20110928/1320416975:title=Order By句の生成]

Filtering

  • [http://d.hatena.ne.jp/perlcodesample/20110926/1320319816:title=列名によるフィルタリング]

  • [http://d.hatena.ne.jp/perlcodesample/20110927/1320329236:title=型によるフィルタリング]

Model

  • [http://d.hatena.ne.jp/perlcodesample/20110816/1318029075:title=モデルを生成する create_model]

  • [http://d.hatena.ne.jp/perlcodesample/20110828/1318850308:title=外部定義したモデルの取り込み include_model]

  • [http://d.hatena.ne.jp/perlcodesample/20110905/1319006181:title=モデルを取得する model]

Advanced

  • [http://d.hatena.ne.jp/perlcodesample/20110720/1316138277:title=予約語のためのクォートを変更する quote]

  • [http://d.hatena.ne.jp/perlcodesample/20110801/1317036702:title=テーブル名と列名の区切り文字を変更する separator]

  • [http://d.hatena.ne.jp/perlcodesample/20110123/1300165343:title=DBIx::Connectorを利用する]

  • [http://d.hatena.ne.jp/perlcodesample/20110804/1317125191:title=検索するテーブルから特定のテーブルを除外する exclude_table]

  • [http://d.hatena.ne.jp/perlcodesample/20110805/1317195340:title=データベースの列の情報を設定する user_column_info]

  • [http://d.hatena.ne.jp/perlcodesample/20110807/1317348255:title=データタイプの一覧の取得 available_datatype]

  • [http://d.hatena.ne.jp/perlcodesample/20110810/1317638296:title=タイプ名の一覧の取得 available_typename]

  • [http://d.hatena.ne.jp/perlcodesample/20110812/1317786773:title=select文で利用する列名を簡単に生成する column]

  • [http://d.hatena.ne.jp/perlcodesample/20110815/1317967361:title=update文で値を代入する部分を動的に生成する]

  • [http://d.hatena.ne.jp/perlcodesample/20110826/1318632897:title=insert文の中のvaluesの部分を動的に生成する values_clause]

  • [http://d.hatena.ne.jp/perlcodesample/20110825/1318591639:title=テーブルの情報を取得する get_table_info]

  • [http://d.hatena.ne.jp/perlcodesample/20110824/1318591588:title=列の情報を取得する get_column_info]

  • [http://d.hatena.ne.jp/perlcodesample/20110902/1319005193:title=like演算子のための値を生成する like_value]

  • [http://d.hatena.ne.jp/perlcodesample/20110903/1319005554:title=パラメーターをマージする merge_param]

  • [http://d.hatena.ne.jp/perlcodesample/20110904/1319005796:title=ヘルパーメソッドを登録する helper]

  • [http://d.hatena.ne.jp/perlcodesample/20110907/1319006732:title=DBIx::Customオブジェクトを生成する new]

  • [http://d.hatena.ne.jp/perlcodesample/20110908/1319007299:title=フィルタ関数を登録するregister_filter]

  • [http://d.hatena.ne.jp/perlcodesample/20110909/1319007778:title=モデルをセットアップする setup_model]

  • [http://d.hatena.ne.jp/perlcodesample/20110910/1319008051:title=指定したテーブルのすべての列のデータタイプを表示する show_datatype] =item * [http://d.hatena.ne.jp/perlcodesample/20110911/1319008159:title=すべてのテーブルを表示する show_tables]

  • [http://d.hatena.ne.jp/perlcodesample/20110919/1319978507:title=パラメーターをマッピングする mapper]

  • [http://d.hatena.ne.jp/perlcodesample/20110923/1320306691:title=現在時刻を生成するサブルーチンの登録 now]

  • [http://d.hatena.ne.jp/perlcodesample/20111102/1322478136:title=大量のインサートを高速化する]

Debug

  • [http://d.hatena.ne.jp/perlcodesample/20110214/1303702930:title=実行されたSQLを確認する]

  • [http://d.hatena.ne.jp/perlcodesample/20110719/1316135650:title=最後に実行されたSQLを取得する last_sql]

Performance

  • [http://d.hatena.ne.jp/perlcodesample/20120903/1346635212:title=廃止予定のタグの解析機能を停止してパフォーマンスを上げる]

Others

  • [http://d.hatena.ne.jp/perlcodesample/20110620/1310369955:title=テーブルの存在を確認する]

Clone this wiki locally