Ionic 3 SQLite - 数据库作为私有成员变量与在每个查询上创建一个新数据库?
Posted
技术标签:
【中文标题】Ionic 3 SQLite - 数据库作为私有成员变量与在每个查询上创建一个新数据库?【英文标题】:Ionic 3 SQLite - database as private member variable vs. creating a new database on every query? 【发布时间】:2018-03-25 23:33:33 【问题描述】:我有一个简单的问题 - 在 Ionic 3 中将打开的数据库放在数据库提供程序类的私有成员变量中,还是在每次查询数据库时调用 create
会更好?
即这个...
private db: SQLiteObject;
constructor()
this.sqlite.create(...)
.then((db: SQLiteObject) =>
this.db = db;
)
queryMethod()
db.executeSql(sql, );
...或这个?
constructor()
queryMethod()
this.sqlite.create(...)
.then((db: SQLiteObject) =>
db.executeSql(sql, );
);
我确实看到第一种方法存在问题,因为在访问数据库之前可能尚未创建数据库的可能性很小。
【问题讨论】:
【参考方案1】:是的,因为这是Promise
,所以您始终需要使用2nd
选项。这样您就不会遇到任何问题。这意味着您需要在解决承诺后执行查询。
始终遵循以下模式:
queryMethod()
this.sqlite.create(...)
.then((db: SQLiteObject) =>
db.executeSql(sql, );
);
【讨论】:
以上是关于Ionic 3 SQLite - 数据库作为私有成员变量与在每个查询上创建一个新数据库?的主要内容,如果未能解决你的问题,请参考以下文章
使用 IONIC 3 + CORDOVA 在 SQLite 中创建数据库
我们可以使用 ionic 框架将视频存储在 sqlite 数据库中吗?如果可以,我们如何存储它?