Monaca Docs
Search
⌃K

Cordova SQLite Storage Plugin

This Cordova/PhoneGap plugin uses SQLite databases on Android, iOS and Windows with an HTML5/Web SQL API.
To check the third party Cordova plugins, you need to create a custom build debugger (Android version or iOS version).

Demo

Enable the plugin in Monaca IDE

  1. 1.
    From the IDE menu, go to Config → Manage Cordova Plugins .
  2. 2.
    Click the Import Cordova Plugin button. Then, you can choose to import the plugin using a ZIP file or a URL/package name.

Usage

After importing the plugin into the project, you can initialize your database. Please make sure to call the plugin API after the Cordova is loaded.
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 references

This section describes some of the main functions used in the Demo. For complete API references, please refer to the repository.

Self-test functions

echoTest()

Verify that both the Javascript and native part of this plugin are installed in your application.
window.sqlitePlugin.echoTest(successCallback, errorCallback);
Return Value
  • Promise

selfTest()

Verify that this plugin is able to open a database, execute the CRUD (create, read, update, and delete) operations, and clean it up properly.
window.sqlitePlugin.selfTest(successCallback, errorCallback);
Return Value
  • Promise

Opening a database

Open a database access handle object.
window.sqlitePlugin.openDatabase({name: String, [location: String], [iosDatabaseLocation: String]}, [successCallback], [errorCallback]);
Parameter
Name
Type
Description
name
String
Name of the database
location
String
[optional] Location of the database
iosDatabaseLocation
String
[optional] iOS Database Location. Available options are:
Return Value
  • Promise
Example
An example of opening a database access handle object with a default or a specified location:
// 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 transactions

Execute SQL on the opened database.
database.executeSql(SQL_STATEMENT: String, [] , [successCallback], [errorCallback]);
Return Value
  • Promise
Example
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');
});

Deleting a database

Delete a database access handle object.
window.sqlitePlugin.deleteDatabase({name: String, [location: String], [iosDatabaseLocation: String]}, [successCallback], [errorCallback]);
Parameter
Name
Type
Description
name
String
Name of the database
location
String
[optional] Location of the database
iosDatabaseLocation
String
[optional] iOS Database Location. Available options are:
Return Value
  • Promise
Example
// 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'});