uni-app sqlite版本问题

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app sqlite版本问题

大神们,sqlite关键词(json_extract)在某些安卓机报错目前发现在android11机型会报错,android.database.sqlite.SQLiteException: no such function: json_extract  这个怎么处理呢?升级了安卓系统也不行,升级了最高也就是11

1 回复

关于uni-app中的SQLite版本问题,通常涉及到数据库操作的兼容性和性能。在开发过程中,确保你使用的SQLite版本与uni-app框架兼容是非常重要的。以下是一个使用uni-app进行SQLite数据库操作的代码示例,以及如何检查SQLite版本(尽管直接检查版本在uni-app中并不常见,因为框架会管理这些依赖)。

使用uni-app进行SQLite数据库操作

首先,确保你已经在manifest.json中配置了必要的权限(如读写权限),以便应用能够访问数据库。

// manifest.json
{
  "mp-weixin": { // 以微信小程序为例
    "requiredPrivateInfos": ["userInfo"]
  },
  "plus": {
    "distribute": {
      "android": {
        "permissions": [
          "android.permission.WRITE_EXTERNAL_STORAGE",
          "android.permission.READ_EXTERNAL_STORAGE"
        ]
      }
    }
  }
}

然后,在你的uni-app项目中,可以使用plus.sqlite对象进行数据库操作。以下是一个简单的示例,展示如何打开数据库、创建表、插入数据以及查询数据。

// 打开数据库(如果不存在则创建)
plus.sqlite.openDatabase({
  name: 'testDB',
  path: '_doc/test.db',
  success: function(e) {
    console.log('Database opened successfully');
    
    // 创建表
    plus.sqlite.executeSql({
      name: 'testDB',
      sql: 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)',
      success: function(e) {
        console.log('Table created successfully');
        
        // 插入数据
        plus.sqlite.executeSql({
          name: 'testDB',
          sql: 'INSERT INTO users (name, age) VALUES (?, ?)',
          args: ['Alice', 30],
          success: function(e) {
            console.log('Data inserted successfully');
            
            // 查询数据
            plus.sqlite.selectSql({
              name: 'testDB',
              sql: 'SELECT * FROM users',
              success: function(e) {
                console.log('Query result:', e.message);
              },
              fail: function(e) {
                console.error('Query failed:', e.message);
              }
            });
          },
          fail: function(e) {
            console.error('Insert failed:', e.message);
          }
        });
      },
      fail: function(e) {
        console.error('Table creation failed:', e.message);
      }
    });
  },
  fail: function(e) {
    console.error('Database open failed:', e.message);
  }
});

关于SQLite版本

在uni-app中,SQLite的具体版本通常由框架和底层平台(如Android、iOS)管理。如果你需要了解当前使用的SQLite版本,通常需要通过平台特定的API或命令行工具来查询,而不是直接在uni-app代码中完成。对于大多数应用场景,uni-app提供的数据库操作接口已经足够使用,无需过分关注底层数据库版本。

回到顶部