Ionic SQLite - 检查数据库是否存在

时间:2017-05-22 03:32:17

标签: android database sqlite cordova ionic-framework

我正在尝试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 个答案:

答案 0 :(得分:4)

使用openDatabase命令而不是create。如果数据库不存在,这将创建数据库。

尝试按照这篇文章

https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/

另外我建议在$ ionicPlatform.ready开头使用此命令并将其保存在某个全局变量中,这样您就可以随时在应用程序中访问它。我一直在使用离子v1的sqlite插件。上面的链接将帮助您将其与离子v2集成。

相关问题