How To add SQL database to store data in Cordova?

Cordova is a popularly used Framework that facilitates developers to build cross-platform mobile applications with web technologies. But one of the main issues that mobile applications face is the Internet connectivity. It is necessary to address the offline and online nature of the app for a smooth user experience. In order to do so, the popular approach is to store the important data that the application needs to work better. One popular approach is to use local storage by integrating an SQL database in the Cordova Application. It is a reliable approach to store and manage data efficiently. This guide will guide you to add an SQL database to your Cordova project for storing and managing data.

Steps for SQL Database Integration

Before we go further, make sure you have the basic Cordova setup and a working project. If not, you can see our blog which guides you through setting up a Cordova project. //link for the Cordova setup blog.

  • Open the Cordova folder in your Cordova project. 
  • Install the SQLite plugin by running the following syntax:

cordova plugin add cordova-sqlite-storage

  • Initialize the SQLite Database in the deviceReady event. This plugin can be accessed as window.sqlitePlugin in the project.
document.addEventListener("deviceready", () =>{ window.db = window.sqlitePlugin.openDatabase({name: "mySql.db", location:       "default"},function(){ console.log('Populated database OK'); }, function(err){    console.log("Error" , err); } ); });
Code language: JavaScript (javascript)

We have initialized the SQL db in device device-ready event at the start of the application. Also, we have initialized the DB in a window object so that it can be accessed globally throughout the application.

  • Now that the DB has been initialized, you can interact with it and can create tables according to your needs. For Example, we will be creating a user table that will store the name and age of the user.
window.db.transaction(function(tx) {      tx.executeSql('CREATE TABLE IF NOT EXISTS UserTable(name text, age integer)')    }, function(error) {      console.log('ERROR: ' + error.message);    }, function() {      console.log('created user table’);    });
Code language: PHP (php)

In the above code, we are accessing the database using a window. db and are performing a transaction to create a table “user table” using the executeSql command.

The Sqlite plugin can perform similar transactions just like we do on SQL like Create, Update, Drop, Alter, etc. You can perform any command according to your needs and the project requirements.

  • We will perform another transaction to insert entries in the user table using the Insert command.
function insertData(name , age){ window.db.transaction(          function(tx) {            tx.executeSql(              "INSERT INTO UserTable VALUES (?1,?2)",              [name, age]            );          },          function(error) {            console.log("ERROR: " + error);          }        ); }
Code language: JavaScript (javascript)

The above code has a function that takes name and age as parameters and inserts them into the user’s table.

  • We can fetch the data from the table using the Select command.
fetchData() {    let items;    window.db.transaction(function (tx) {      tx.executeSql(        "SELECT * FROM UserTable",        [],        function (tx, rs) {          for (var i = 0; i < rs.rows.length; i++) {            var record = rs.rows.item(i);            console.log("Record " + (i + 1) + ": " + JSON.stringify(record));            items.push(JSON.stringify(record.assetItem));          }        }      );    },function (tx, error) {      console.log("ERROR: " + error.message);    });  }
Code language: JavaScript (javascript)

In the above code, we have a fetchData function that basically returns an array of the records inserted in the user’s table. We fetched all the data entries in the user table using *(means all).

We then pushed the records of the table into an array called items and returned it.

Similarly, you can use other SQL queries like update delete, or alter in the same way we use in normal SQL.

Conclusion

By adding an SQL plugin to your Cordova app, we opened possibilities to store data locally and access it. By adding this functionality in your app, data can now be fetched in offline mode as well by storing essential data in the SQL database locally and using it when there’s no internet and later can be updated or stored in your actual database whenever the device gets the internet connection back. Thus we finally learned how we can use SQLite storage in the Cordova app and how we can add and fetch data in the SQL table.

Recent Post

  • Future Trends in AI Chatbots: What to Expect in the Next Decade

    Artificial Intelligence (AI) chatbots have become indispensable across industries. The absolute conversational capabilities of AI chatbots are enhancing customer engagement, streamlining operations, and transforming how businesses interact with users. As technology evolves, the future of AI chatbots holds revolutionary advancements that will redefine their capabilities. So, let’s start with exploring the AI chatbot trends: Future […]

  • Linguistics and NLP: Enhancing AI Chatbots for Multilingual Support

    In today’s interconnected world, businesses and individuals often communicate across linguistic boundaries. The growing need for seamless communication has driven significant advancements in artificial intelligence (AI), particularly in natural language processing (NLP) and linguistics. AI chatbots with multilingual support, are revolutionizing global customer engagement and service delivery. This blog explores how linguistics and NLP are […]

  • How Reinforcement Learning is Shaping the Next Generation of AI Chatbots?

    AI chatbots are no longer just about answering “What are your working hours?” or guiding users through FAQs. They’re becoming conversation partners, problem solvers and even reporting managers and sales agents. What’s driving this transformation? Enter Reinforcement Learning (RL)—a type of machine learning that’s changing the way chatbots think, learn, and respond. At Codalien Technologies, […]

  • AI Chatbots for Sales Team Automation: The Critical Role of AI Sales Assistants in Automating Your Sales Team

    Sales teams are the heart of any successful business, but managing them effectively can often feel like trying to juggle flaming swords. The constant pressure to generate leads, maintain relationships, and close deals leaves your team overwhelmed, spending more time on administrative tasks than actual selling. Here’s where AI-powered sales assistants step in to completely […]

  • Transforming HR with AI Assistants: The Comprehensive Guide

    The role of Human Resources (HR) is critical for the smooth functioning of any organization, from handling administrative tasks to shaping workplace culture and driving strategic decisions. However, traditional methods often fall short of meeting the demands of a modern, dynamic workforce. This is where our Human Resource AI assistants enter —a game-changing tool that […]

  • How Conversational AI Chatbots Improve Conversion Rates in E-Commerce?

    The digital shopping experience has evolved, with Conversational AI Chatbots revolutionizing customer interactions in e-commerce. These AI-powered systems offer personalized, real-time communication with customers, streamlining the buying process and increasing conversion rates. But how do Conversational AI Chatbots improve e-commerce conversion rates, and what are the real benefits for customers? In this blog, we’ll break […]

Click to Copy