AlierDB モジュール
モジュールパス: /alier_sys/AlierDB.js
概要
このモジュールは、バックエンドのデータベースの機能を利用するためのインタフェースとして、AlierDB
および AlierTable
クラスと、それらのクラスと組み合わせて使用する関数群を提供します。
AlierDB
クラスは単一のデータベースに対する操作を集約したクラスです。
データベースの各テーブルに対する操作を行うため、AlierDB
は AlierTable
のインスタンスを生成し、テーブル操作を行わせます。
const alierDb = new AlierDB({ database: "my-database", /* その他、接続情報などの設定 */ });
// 物理テーブル "myPhysicalTable" を操作する AlierTable のインスタンスを得る
const myPhysicalTable = alierDb.get({ table: "myPhysicalTable" });
// カラム foo, bar に対するビューを操作する AlierTable のインスタンスを得る
const fooBarView = alierDb.get({ table: "myPhysicalTable", columns: [ "foo", "bar" ] });
AlierTable
クラスは単一のテーブルに対する操作を集約したクラスです。
操作できる対象は物理テーブルに限らず、SELECT
によって作られるビューや JOIN
によって作られる結合テーブルなどの仮想テーブルも含まれます。
AlierTable
は、HTTPのリクエストメソッド風のインタフェースを持ちます。データの取得・追加・更新・削除にはそれぞれ以下のメソッドを使います:
-
対象のテーブルからレコードを取得します。
-
対象のテーブルにレコードを追加します。 このメソッドは対象が物理テーブルである場合にのみ使えます。
-
対象のテーブルのレコードを更新します。
-
対象のテーブルのレコードを削除します。 このメソッドは対象が物理テーブルである場合にのみ使えます。
またテーブルを結合するには AlierTable.join()
メソッドを使います。
const alierDb = new AlierDB({ database: "my-database", /* その他、接続情報などの設定 */ });
// テーブル "t1" を操作する AlierTable のインスタンスを得る
const t1 = alierDb.get({ table: "t1" });
// テーブル "t2" を操作する AlierTable のインスタンスを得る
const t2 = alierDb.get({ table: "t2" });
// t1 と t2 の交差結合を作る
const joinedTable = t1.join({ table: t2, joinType: DBJoinType.CROSS_JOIN });
// カラム foo, bar に対するビューを操作する AlierTable のインスタンスを得る
const fooBarView = alierDb.get({ table: "myPhysicalTable", columns: [ "foo", "bar" ] });
クラス
AlierDB
- 単一のデータベースに対する操作を集約したクラスです。
AlierTable
- テーブルを表すオブジェクトのクラスです。
VirtualAlierTable
- 仮想テーブルを表すオブジェクトのクラスです。
PreparedStatement
- プリペアードステートメントを操作するためのクラスです。
関数
$count()
- 指定した条件を満たすレコードの件数を与える集計用オブジェクトを生成します。
$sum()
- 指定した条件を満たすレコードの値の合計を与える集計用オブジェクトを生成します。
$avg()
- 指定した条件を満たすレコードの値の算術平均を与える集計用オブジェクトを生成します。
$min()
- 指定した条件を満たすレコードの値の最小値を与える集計用オブジェクトを生成します。
$max
- 指定した条件を満たすレコードの値の最大値を与える集計用オブジェクトを生成します。
定数
DBJoinType
AlierTable.join()
メソッドで結合方法(引数のプロパティjoinType
)を指定するために使う列挙体です。