core
    正在准备搜索索引...

    接口 YmxDatabaseManager

    基于 SQLite 的关系型数据库管理器

    interface YmxDatabaseManager {
        execute(data: SqlData): Promise<any>;
        query(data: SqlData): Promise<Record<string, any>[]>;
    }
    索引
    • 执行 SQL 语句,返回单个值,结果类型由执行具体 sql 的结果决定。

      参数

      返回 Promise<any>

      const db = ymx.getDatabaseManager();

      await db.execute({
      sql: 'CREATE TABLE IF NOT EXISTS User (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(32), gender INTEGER)'
      });
      await db.execute({
      sql: 'PRAGMA user_version = 1'
      });

      await db.execute({
      sql: 'INSERT INTO User (name, gender) VALUES (?, ?)',
      bindArgs: ["张三", 1]
      });

      await db.execute({
      sql: 'INSERT INTO User (name, gender) VALUES (?, ?)',
      bindArgs: ["李四", 0]
      });

      //获取用户版本
      let userVersion = await db.execute({
      sql: 'PRAGMA user_version'
      });
      if (userVersion == 1) {
      try {
      await db.execute({ sql: 'ALTER TABLE User ADD birthday INTEGER' });
      //设置用户版本
      userVersion = 2;
      await db.execute({
      sql: `PRAGMA user_version = ${userVersion}`
      });
      alert('升级数据库成功');
      } catch (err) {
      alert(`升级数据库失败 ${err.message}`);
      }
      } else if (userVersion == 2) {
      //...
      }
    • 查询返回结果集

      参数

      返回 Promise<Record<string, any>[]>

      const db = ymx.getDatabaseManager();

      //返回用户表名称列表
      await db.query({
      sql: "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' ORDER BY name"
      });

      await db.query({
      sql: 'SELECT * FROM User'
      });

      await db.query({
      sql: 'SELECT * FROM User WHERE name = ?',
      bindArgs: ["张三"]
      });