Ionic 5/Angular and Cordova SQLite Storage Example

Ionic 5/Angular and Cordova SQLite Storage Example

In this post we will give you information about Ionic 5/Angular and Cordova SQLite Storage Example. Hear we will give you detail about Ionic 5/Angular and Cordova SQLite Storage ExampleAnd how to use it also give you demo for it if it is necessary.

Ionic 5 is, nowadays, one of the most popular open source and free hybrid mobile frameworks for building hybrid mobile apps for Android, iOS and even Windows Universal Platform.

Data Storage in Ionic 5 Apps

One of the key requirements of a mobile application is data storage. It’s true that you can use local storage just like any web app (Since hybrid apps are web apps in essence) but it has limitations such as query difficulties (i.e you can’t build complex data queries) and capacity – You can only store a maximum of 10MB of data.

So what solution do we have?

How to Use SQLite with Ionic 5 for Data Storage?

In this tutorial, we are going to see how to use SQLite, a light version of SQL which has no capacity limitation (Depends only your device storage capacity) and can execute complex SQL queries on data. Now let’s see how we can use SQLite with Ionic 5 and Angular.

Create an Ionic 5/Angular Project

First, let’s start by creating a new Ionic project based on Angular. Open your terminal on Linux/MAC or your command prompt under Windows and type the following commands to scaffold a new project:

ionic start ionic-sqlite-example blank --type=angular 

You can’t use SQLite in the browser so you need to use an emulator or your real mobile device. Before you can do that let’s add a target platform (In our case we’ll be adding Android)

ionic cordova platform add android 

You need to have Java and Android SDK installed on your system and the ANDROID_HOME environment variable set to the location of your Android SDK.

If you want to target iOS you need to build your app under a MAC system.

Adding the Cordova SQLite Plugin

Next let’s add the Cordova plugin for using SQLite

ionic cordova plugin add cordova-sqlite-storage

We are not going to build a fully fledged app but a simple example which shows how to use SQLite with Ionic.

Installing the Ionic Native 5 Plugin

Next, you need to install the Ionic native plugin:

npm install @ionic-native/sqlite

Next, go ahead and open your src/app/home/home.page.ts file and add the import statement to import SQLite and SQLiteObject from ionic-native:

import { SQLite, SQLiteObject } from ‘ionic-native’;  

Next, add a database variable to your class:

privatedatabase:SQLiteObject;

Next, you need to inject SQLite via the constructor:

constructor(privatesqlite:SQLite){}

Next, in the constructor add the following code:

this.sqlite.create({name:'items.db',location:'default'}).then((db:SQLiteObject)=>{this.database=db;db.executeSql(createtableifnotexistsitems(referenceCHAR(10)PRIMARYKEY,nameCHAR(30),qMinFLOAT,qRealFLOAT))',[]).then(()=>console.log('Executed SQL')).catch(e=>console.log(e));}).catch(e=>console.log(e));

After running your app; a database with the items.db name will be created and a database table withthe items name will be created only if it doesn’t exist.

Now how can we save some data in our database tabe items.

To save data you just need to write a SQL Insert query with some values. For example:

    let q = "INSERT INTO items VALUES (?, ?, ?, ?)";

Next, simply execute the query:

    this.database.executeSql(q, { "ITEM000001","ITEM 000001",1.0,100.0});

How to Retrieve Data?

Again to get or retreive data from the items database table we just need to use the right SQL instruction, this timeit’s select:

let items = [];this.database.executeSql("SELECT * FROM items ").then((r) => {  if (r.res.rows.length > 0) {    for (var i = 0; i < r.res.rows.length; i++) {      items.push(r.res.rows.item(i));    }  }

Here is the complete example:

import {Component, OnInit} from '@angular/core';import {NavController, Platform} from 'ionic-angular';import { SQLite, SQLiteObject } from ‘ionic-native’;  @Component({  selector: 'app-home',  templateUrl: './home.page.html',  styleUrls: ['./home.page.css'],})export class HomePage {    private database: SQLiteObject;    items: Array<any>;    constructor(private platform: Platform) {        this.platform.ready().then(() => {            this.sqlite.create({

name: ‘items.db’, location: ‘default’}) .then((db: SQLiteObject) => {

this.database = db;  this.createTables();  .then(() => console.log('Executed SQL'))  .catch(e => console.log(e));

}) .catch(e => console.log(e)); }); } public createTables(){ this.database.executeSql(create table if not exists items( reference CHAR(10) PRIMARY KEY, name CHAR(30), qMin FLOAT, qReal FLOAT )), {}); } public addItem() { this.database.executeSql(q, { “ITEM000001″,”ITEM 000001”,1.0,100.0}).then((data) => { console.log(“Success”); }, (e) => { console.log(“Error : ” + JSON.stringify(e.err)); }); }

    public findAll() {        this.database.executeSql("SELECT * FROM items", []).then((data) => {            this.items = [];            if(data.rows.length > 0) {                for(var i = 0; i < data.rows.length; i++) {                    this.items.push(data.rows.item(i));                }            }        }, (e) => {            console.log("Errot: " + JSON.stringify(e));        });    }}

Next, in your home template file, you need to add the following code to call the various operations for creating and reading data:

<ion-header><ion-toolbarcolor="primary"><ion-title> Home </ion-title></ion-toolbar></ion-header><ion-contentpadding><ion-buttonexpand="block"(click)="addItem()">Add Item </ion-button><ion-list><ion-item*ngFor="let item of items"><ion-label><h2> {{ item.name }}</h2> {{ item.qReal }}</p></ion-label></ion-item></ion-list></div></ion-content>

Conclusion

As you can see, using SQLite with Ionic 5 and Angular is dead easy and straightforward. All you need to do is to install the Cordova plugin for SQLite and build the SQL queries and run them.

For more advanced examples you just need to look for any tutorial about SQlite on the web. What you can do normally with SQlite, you can do here in the case of Ionic 5.


Hope this code and post will helped you for implement Ionic 5/Angular and Cordova SQLite Storage Example. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US