12 Mayıs 2019 Pazar

ionic 3 sqlite provider kullanımı

  Ahmet Şimşek       12 Mayıs 2019 Pazar


İlk olarak gerekli modülleri indirelim.

ionic cordova plugin add cordova-sqlite-storage
npm install @ionic-native/sqlite@4.2.1

sqlite için bir provider oluşturalım.

ionic generate provider sqlite

Oluşturulan provider dosyasını src/providers/sqlite içerisinde bulabilirsiniz.

Bu klasör içerisinde bulunan sqlite.ts dosyasını aşağıdaki şekilde düzenleyin.

createDatabaseFile fonksiyonu içerisinde veritabanı bilgilerini düzenleyebilirsiniz. Veritabanı oluşturulması sonrasında db değerini this.db değişkenine aktararak kullanıyoruz.

createTables fonksiyonu içerisinde kullanmak istediğiniz tabloları this.db.executeSql oluşturabilirsiniz.

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
/*
Generated class for the SqliteProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class SqliteProvider {
db: any;
constructor(public http: HttpClient, public sqlite: SQLite) {
this.createDatabaseFile();
}
public createDatabaseFile(): void {
this.sqlite.create({
name: 'data.db',
location: 'default'
})
.then((db: SQLiteObject) => {
this.db = db;
this.createTables();
})
.catch(e => console.log(e));
}
private createTables() {
this.db.executeSql('create table if not exists user(id INTEGER PRIMARY KEY, username TEXT)', [])
.then(() => { console.log('table created..'); })
.catch(e => console.log(e));
}
}
Örnek kullanımı aşağıda görebilirsiniz. Tarayıcı üzerinden çalışırken sqlite çalışmaz hataya düşmemek adına try catch kullanabilirsiniz. Sqlite ile gerekli testleri cihaz üzerinden yapabilirsiniz.
import {Component} from '@angular/core';
import {NavController, Events} from 'ionic-angular';
import {HttpClient} from '@angular/common/http';
import {Observable} from 'rxjs/Rx';
import { SqliteProvider } from '../../providers/sqlite/sqlite';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class Home {
users: any;
constructor(
public navCtrl: NavController,
public httpClient: HttpClient,
private sqlite: SqliteProvider,
) {
this.users = []
try {
this.getUsers()
} catch (error) {
console.log(error)
}
}
getUsers() {
try {
this
.sqlite
.db
.executeSql('SELECT * FROM users ORDER BY id DESC', [])
.then(res => {
for(var i=0; i<res.rows.length; i++) {
this.users.push(res.rows.item(i))
}
})
} catch (error) {
console.log(error)
}
}
}




Sevgiler
logoblog

Thanks for reading ionic 3 sqlite provider kullanımı

Hiç yorum yok:

Yorum Gönder