我正在创建一个Ionic 2移动应用程序,它将使用SQLite数据库来存储数据。我知道我必须使用下面的代码来访问数据库:
this.sqlite.create({
name: 'data.db',
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('create table danceMoves(name VARCHAR(32))', {})
.then(() => console.log('Executed SQL'))
.catch(e => console.log(e));
})
.catch(e => console.log(e));
考虑到我的应用程序中将有几个页面访问数据库,我的问题是何时应该使用 create
方法来获取db
对象实例:每次我需要执行命令时,还是应该执行一次并将数据库实例放在全局变量中?
您可以创建一个单例提供程序,该提供程序充当 sqlite db 的接口。
@Injectable()
export class StorageService {
constructor(private sqlite: SQLite){
this.sqlite.create({
name: 'data.db',
location: 'default'
})
.then((db: SQLiteObject) => {
db.executeSql('create table danceMoves(name VARCHAR(32))', {})
.then(() => console.log('Executed SQL'))
.catch(e => console.log(e));
})
.catch(e => console.log(e));
}
//other db access functions like insert, get, delete etc.
}
在 app.module.ts 中,将其设置为提供程序,并在需要的任何位置注入。