İ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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Hiç yorum yok:
Yorum Gönder