Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 2.6 KB

README_ja.md

File metadata and controls

59 lines (46 loc) · 2.6 KB

jdb.js - Framework for Indexed Database API

jdb.jsは、W3C Indexed Database APIをより直感的に扱いやすくすることを目指したライブラリです。 名前の由来は、「IDB」(Indexed DB)をより使いやすく、ということで「JDB」(Jはアルファベット順でIの次の文字です)としました。

Indexed Database APIをそのまま利用するのに比べて、jdb.jsが優っている点は以下のとおりです。

  • オブジェクト指向的で使いやすいインターフェース
  • JSONを使用した宣言的な形式で、オブジェクトストアの定義を行える
  • 実行時の動的なDBマイグレーションを容易に(オブジェクトストアやインデックスの定義にsince:versionと指定するだけ)
  • 非同期処理を直感的に記述できる(コールバック、もしくはDefered)

以下に載せるのは、jdb.jsを使用したコードスニペットです。Indexed Database APIを直接使うのに比べ、非常にコンパクトなコードでのデータベース処理を実現できます。

// データベースへの参照を作成
var db = new JDBDatabase('database name', 1);

// オブジェクトストアへの参照を作成
var CatStore = new JDBObjectStore({
  name: 'CatStore', // オブジェクトストアの名称
  database: db,     // データベース
  key: { path: 'id', autoIncrement: true }, // キープロパティの定義
  indexes: {
    ageIdx: { path: 'age' } // インデックスの定義
  }
});

// データベース接続をオープン
db.open().success(function() {
  console.log('database opened');
});

// オブジェクトストアにオブジェクトを格納
CatStore.put({
  name: 'Nana',
  age: 7,
  gender: 'female'
});

// オブジェクトストアから値を取得
var catId = 1;
CatStore.get(catId, function(cat, error) {
  // 取得した結果(cat)に対して処理を行う
});

// 全てのネコを順次処理
CatStore.all().iterate(function(cat) {
  ...
});

// 5歳以下のネコをすべて取得
var criteria = JDBCriteria.byIndex('ageIdx').le(5);
CatStore.criteria(criteria).list(function(cats) {
  // 全検索結果に対して処理を行う
});

更に詳しい情報は、チュートリアルを参照してください。

jdb.jsはまだ生まれたばかりのフレームワークです。どんな貢献でも大歓迎ですので、ご連絡はご遠慮なく!