Cordova Sqlite Storage プラグイン

この Cordova プラグインは、HTML5/Web SQL API を使用して Android、iOS、Windows 上で sqlite データベースを開き、使用します。

サードパーティー製 Cordova プラグインを確認する場合は、カスタムビルドデバッガー ( Android 版 または iOS 版 ) を作成する必要があります。

デモ

Monaca クラウド IDE でプラグインを有効にする

  1. IDE メニューから 設定 → Cordova プラグインの管理 へ移動します。

  2. Cordova プラグインのインポート ボタンをクリックします。 次に、[ZIP ファイル] または [パッケージ名 / URL] を使用してプラグインをインポートします。

使い方

プラグインをプロジェクトへインポート後、データベースの初期化を開始できます。[deviceready] イベント後にプラグイン API を使用します。

var database = null;

document.addEventListener("deviceready", function(){
    // Initialize the database after the Cordova is ready.
    initDatabase();
});

function initDatabase() {
    database = window.sqlitePlugin.openDatabase({name: 'sample.db', location: 'default'});

    database.transaction(function(transaction) {
        transaction.executeSql('CREATE TABLE SampleTable (name, score)');
    });
}

API リファレンス

ここでは、デモ で使用されている主な API について説明します。 完全なAPIリファレンスについては、こちら を参照してください。

セルフテスト 機能

echoTest()

このプラグインの Javascript とネイティブ部分の両方がアプリにインストールされていることを確認してください。

window.sqlitePlugin.echoTest(successCallback, errorCallback);

戻り値

  • Promise

selfTest()

プラグインがデータベースを開き、CRUD (作成、読み取り、更新、削除) 操作を実行し、正しくクリーンアップできることを確認します。

window.sqlitePlugin.selfTest(successCallback, errorCallback);

戻り値

  • Promise

データベースの操作

データベースオブジェクトを開きます。

window.sqlitePlugin.openDatabase({name: String, [location: String], [iosDatabaseLocation: String]}, [successCallback], [errorCallback]);

パラメーター

パラメーター名 説明
name String データベースの名前
location String [オプション] データベースの場所
iosDatabaseLocation String [オプション] iOSデータベースの場所。
  • default: Library/LocalDatabase サブディレクトリ - iTunes には表示されず、iCloud によってバックアップされません。
  • Library: Library サブディレクトリ - iCloud によってバックアップされ、iTunes には表示されません。
  • Documents: Documents サブディレクトリ - iTunesに表示され、iCloudによってバックアップされる

戻り値

  • Promise

既定または指定された場所でデータベースアクセスハンドルオブジェクトを開く例:

// use the default location
var database = window.sqlitePlugin.openDatabase({name: 'my.db', location: 'default'});

// use a specified location for iOS only
var database = window.sqlitePlugin.openDatabase({name: 'my.db', iosDatabaseLocation: 'Library'});

The successcb and errorcb callback parameters are optional but can be extremely helpful in case anything goes wrong. For example:

window.sqlitePlugin.openDatabase({name: 'my.db', location: 'default'}, function(db) {
  db.transaction(function(tx) {
    // ...
  }, function(err) {
    console.log('Open database ERROR: ' + JSON.stringify(err));
  });
});

SQL トランザクション

開いているデータベースで SQL を実行します。

database.executeSql(SQL_STATEMENT: String, [] , [successCallback], [errorCallback]);

戻り値

  • Promise

database.transaction(function(transaction) {
    transaction.executeSql('SELECT count(*) AS recordCount FROM SampleTable', [], function(ignored, resultSet) {
        $('#result').text('RECORD COUNT: ' + resultSet.rows.item(0).recordCount);
    });
}, function(error) {
    alert('SELECT count error: ' + error.message);
});
database.transaction(function(transaction) {
    transaction.executeSql('DELETE FROM SampleTable');
}, function(error) {
    alert('DELETE error: ' + error.message);
}, function() {
    alert('DELETE OK');
});

データベースの削除

データベースオブジェクトを削除します。

window.sqlitePlugin.deleteDatabase({name: String, [location: String], [iosDatabaseLocation: String]}, [successCallback], [errorCallback]);

パラメーター

パラメーター名 説明
name String データベースの名前
location String [オプション] データベースの場所
iosDatabaseLocation String [オプション] iOSデータベースの場所。
  • default: Library/LocalDatabase サブディレクトリ - iTunes には表示されず、iCloud によってバックアップされません。
  • Library: Library サブディレクトリ - iCloud によってバックアップされ、iTunes には表示されません。
  • Documents: Documents サブディレクトリ - iTunesに表示され、iCloudによってバックアップされる

戻り値

  • Promise

// use the default location
window.sqlitePlugin.deleteDatabase({name: 'my.db', location: 'default'}, successcb, errorcb);

// use a specified location for iOS only
window.sqlitePlugin.deleteDatabase({name: 'my.db', iosDatabaseLocation: 'Library'});