Storage in PhoneGap

Introduction

We can provide access to the device storage options with the help of Storage in Apache Cordova/PhoneGap. The method that we use is openDatabase and the arguments are:

database_name
database_version
database_displayname
database_size

openDatabase:  It returns the new database object. window.openDatabase returns a new Database object. This method will create the new SQL Lite database object and we can use this object to manipulate the data in the database. The supported platforms are Android, BlackBerry WebWorks (OS 6.0 and higher), iPhone and webOS.

Syntax

var dbShell = window.opwnDatabase(database name, database version, database displayname, database size);

The database_name parameter specifies the name of the database, database_version specifies the version name, database_displayname specifies the display name of the database and the database_size defines the size of the database.

For example

var db=window.openDatabase("test","1.0","Test DB",1000000);

<!DOCTYPE html>

<html>

  <head>

    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />

    <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>

    <title>Cordova Database Example</title>

         <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8"/>

      <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>

      <script type="text/javascript">

          // Wait for Cordova to load        

          document.addEventListener("deviceready", onDeviceReady, false);

          // Cordova is ready       

          function onDeviceReady() {

              var db = window.openDatabase("test", "1.0", "Test DB", 1000000);

          }

    </script>

  </head>

  <body>

    <h1>Example</h1>

    <p>Open Database</p>

  </body>

</html>


Database: The database object contains the methods that allow the user to manipulate the Database. It has the two methods transaction and changeVersion. The transaction runs a database transaction and the changeVersion method allows scripts to automaticly verify the version number and change it at the same time as doing a schema update. The supported platforms are Android, BlackBerry WebWorks(OS 6.0 and higher), iPhone and webOS.

Example
 

<!DOCTYPE html>

<html>

<head>

    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title>Cordova Database Example</title>

    <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title"

        charset="utf-8" />

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>

    <script type="text/javascript">

        // Wait for Cordova to load  

        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready

        function onDeviceReady() {

            var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);

            db.transaction(populateDB, errorCB, successCB);

        }

        // Populate the database    

        function populateDB(tx) {

            tx.executeSql('DROP TABLE IF EXISTS DEMO');

            tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');

            tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');

            tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');

        }

        // Transaction error callback

        function errorCB(tx, err) {

            alert("Error processing SQL: " + err);

        }

        // Transaction success callback     

        function successCB() {

            alert("success!");

        }

    </script>

</head>

<body>

    <h1>

        Example</h1>

    <p>

        Database</p>

</body>

</html>

Summary : In this article I explained how to use storage in Cordova/PhoneGap.