普通的app用ionic內(nèi)置的Storage存儲鍵值對的方式可以滿足日常的使用喳瓣,但是有時候遇到一些奇怪的需求衬衬。比如說有個網(wǎng)友留言說做一個離線版的App点骑,怎樣調(diào)用本地Sqlite執(zhí)行SQL語句刨肃。問題描述清楚直接上代碼圃阳。
需要說明的是SQLite是手機(jī)內(nèi)置的數(shù)據(jù)庫存儲方式孽文,在Ionic2中需要安裝相應(yīng)的插件和安裝包驻襟。過程很簡單
-
第一步
安裝插件、并加入項目
$ ionic plugin add cordova-sqlite-storage
$ npm install --save @ionic-native/sqlite
-
第二步
把服務(wù)加入到src/app/app.moudle.ts
...
import { SQLite } from '@ionic-native/sqlite';
...
providers: [
...
SQLite
]
...
-
第三步
使用數(shù)據(jù)庫芋哭,常規(guī)來說沉衣,這一步應(yīng)該封裝成公共服務(wù)或者工具類。類中是具體的創(chuàng)建數(shù)據(jù)庫减牺,調(diào)用數(shù)據(jù)庫厢蒜,CRUD等方法。這里只是說明原理烹植,直接調(diào)用
import { Component } from '@angular/core';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';
@Component({
selector: 'page-hello-ionic',
templateUrl: 'hello-ionic.html'
})
export class HelloIonicPage {
constructor(
private sqlite: SQLite) {
}
database :SQLiteObject;
ngOnInit(){
this.initDB();
}
initDB(){
this.sqlite.create({
name: 'data.db',
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('create table t_log(name VARCHAR(32))', {})//建表
.then(() => console.log('Executed SQL'))
.catch(e => console.log(e));
this.database = db;
db.executeSql("insert into t_log values('123')",{});//插入數(shù)據(jù)
})
.catch(e => console.log(e));
}
//查詢
query() {
let results = this.database.executeSql("select * from t_log",{});
alert(data.rows.length);
alert(data.rows.item(0).name);
})
}
}
-
最后一步
這一步一定要生成app安裝到手機(jī)才能得到結(jié)果斑鸦,畢竟是調(diào)用手機(jī)內(nèi)置的SQLite。
ionic build android
用上面的命令構(gòu)建APP并安裝到手機(jī)看看效果吧