indexDB vue 创建数据库 创建表 添加对象数据

1 .open(dbName,1) 版本号可以省略

javascript 复制代码
 let dbName = 'hist-data-1d'
      const request = indexedDB.open(dbName); // 如果你不知道数据库的版本号,可以省略第二个参数,这样 indexedDB 会默认为你打开最新版本的数据库,因为版本号总是自增长的

2 第一次创建表 或数据库版本变化时创建表

javascript 复制代码
// 数据库版本变化时创建表
      request.onupgradeneeded = event => {
        for (let symbol of symbolList) { //  for (let symbol in symbolList) 循环打印出来的是 symbolList 中每个元素的索引
          symbol = symbol.replace('-', '_').toLowerCase();

          const db = event.target.result;
          db.createObjectStore(symbol);
        }
      };

3 指定表 添加数据 key value

javascript 复制代码
 request.onsuccess = event => {

    const db = event.target.result;
    const transaction = db.transaction([tablie], 'readwrite');
    const objectStore = transaction.objectStore(tablie);
    
    let key = 'key'
    const request = objectStore.add(data, key);
}

4 add 是累加数据 put 是只有一条数据

javascript 复制代码
const request = objectStore.add(data, key);

ps

ps1. 如果使用 add 方法添加的数据中 key 已经存在于对象仓库中,则会抛出 ConstraintError 错误

ps2 .需要更新已经存在的数据,你应该使用 put 方法而不是 add 方法

相关推荐
Pu_Nine_9几秒前
企业级 Axios 配置实战:从基础到完整封装
前端·ajax·axios·网络请求·企业级
低调小一几秒前
OpenClaw 模型配置与火山 Coding Plan 支持清单(实践笔记)
java·前端·笔记·openclaw
xuxie992 分钟前
Next 13 sqlite3 查找、网页
java·数据库·oracle
毛骗导演3 分钟前
万字解析 OpenClaw 源码架构-消息渠道集成简介
前端·架构
kyriewen3 分钟前
别再直接 git push 了!这个"魔法"参数让你的代码质量翻倍
前端·git·命令行
V1ncent Chen4 分钟前
从零学SQL 04 MySQL Workbench用法简介
数据库·sql·mysql·数据分析
洛克大航海4 分钟前
SQLite 的安装
数据库·sqlite
ZZZKKKRTSAE5 分钟前
在rhel9中部署MySQL
数据库·mysql
1024小神7 分钟前
uniapp中用vue3自己写一个验证码输入框,自动获取焦点和自动切到下一个焦点
前端
www_stdio10 分钟前
手搓一个 Mini React:从 JSX 到虚拟 DOM 的完整实现
前端·react.js·面试