Ionic SQLite -- 检查数据库是不是存在
Posted
技术标签:
【中文标题】Ionic SQLite -- 检查数据库是不是存在【英文标题】:Ionic SQLite -- check if database existsIonic SQLite -- 检查数据库是否存在 【发布时间】:2017-10-21 14:28:13 【问题描述】:我正在尝试 Ionic 框架。我需要在 android SQLite 中存储一些数据。所以,我想打开或创建一个数据库,如果数据库之前不存在,用一些数据填充它。
这里说我使用create
方法,即使数据库已经存在:
https://ionicframework.com/docs/native/sqlite/
于是我写了一个类:
export class Database
private sqlite: SQLite;
private database: SQLiteObject = null;
constructor()
this.sqlite = new SQLite();
private open_db()
return this.sqlite.create(
name: 'data.db',
location: 'default'
)
.then((db: SQLiteObject) =>
this.database = db;
return db.sqlBatch([...some sql inserts and create tables...]);
);
);
public all()
return this.open_db().then(() => this.database.executeSql("SELECT ...something...", []));
现在,我如何仅在数据库实际创建而不是打开时才调用 db.sqlBatch? 是的,这段代码在没有合理解释的情况下抛出随机异常,可以在 logcat 中看到,任何建议都将不胜感激。
【问题讨论】:
【参考方案1】:使用 openDatabase 命令代替 create。如果数据库不存在,这将创建数据库。
试试看这篇文章
https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/
我还建议在 $ionicPlatform.ready 的开头使用此命令并将其保存在某个全局变量中,这样您就可以在应用程序中随时访问它。我一直在使用带有 ionic v1 的 sqlite 插件。上面的链接将帮助您将它与 ionic v2 集成。
【讨论】:
我想知道这在 ionic 3 中是否仍然有效。文档没有提到任何关于openDatabase
方法的内容。 ionicframework.com/docs/native/sqlite
@Devaroop 我认为根据 github 上的官方文档。 “openDatabase”是正确的方法。到目前为止,我还没有使用过 ionic 3 应用程序。所以我不能确定。 github.com/xpbrew/cordova-sqlite-storage以上是关于Ionic SQLite -- 检查数据库是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
我们可以使用 ionic 框架将视频存储在 sqlite 数据库中吗?如果可以,我们如何存储它?
Ionic - 在 android 的不同目录中创建 SQLite 数据库
什么意思位置:'default' SQLite 和 Ionic 预填充数据库