- IndexedDB 教程
- IndexedDB - 主页
- IndexedDB - 简介
- IndexedDB - 安装
- IndexedDB - 连接
- IndexedDB - 对象存储
- IndexedDB - 创建数据
- IndexedDB - 读取数据
- IndexedDB - 更新数据
- IndexedDB - 删除数据
- 使用 getAll() 函数
- IndexedDB - 索引
- IndexedDB - 范围
- IndexedDB - 事务
- IndexedDB - 错误处理
- IndexedDB - 搜索
- IndexedDB - 游标
- IndexedDB - Promise 封装
- IndexedDB - Ecmascript 绑定
- IndexedDB 有用资源
- IndexedDB - 快速指南
- IndexedDB - 有用资源
- IndexedDB - 讨论
IndexedDB - 创建数据
在创建数据之前,我们需要了解如何传输数据。IndexedDB 开启事务,并在每个事务中执行其各项数据操作。每个操作有四个步骤 -
- 获取数据库对象
- 在数据库上开启事务
- 在事务上开启对象存储
- 在对象存储上操作
IndexedDB 中的操作 -
- 创建
- 读取
- 更新
- 删除
首先,要在数据库中执行任何操作,我们需要开启一个事务。开启事务后,我们需要获取所需的的对象存储。这些对象存储仅根据创建事务时提到的要求提供。然后可以稍后添加任何所需数据。
使用函数来执行给定操作(如果有)。例如,我们使用 add() 函数向数据库中添加数据或添加新条目。
语法
下面是将数据创建到数据库中的语法 -
ar request = objectStore.add(data);
我们可以通过使用 add() 或 put() 函数将数据添加到对象存储中。
示例
在以下示例中,我们使用 JavaScript 中的 add() 方法将数据插入对象存储 -
<!DOCTYPE html> <html lang="en"> <head> <title>creating data</title> </head> <body> <script> const dbName = "Database"; var request = indexedDB.open("Database", 2); request.onupgradeneeded = event => { var db = event.target.result; var objectStore = db.createObjectStore("student",{ keyPath :"rollno" } ); }; request.onsuccess = event => { document.write("Database opened successfully"); var db = event.target.result; var transaction = db.transaction("student", "readwrite"); var objectStore = transaction.objectStore("student"); objectStore.add({ rollno: 160218737028, name: "jason", branch: "IT" }); objectStore.add({ rollno: 160218733028, name: "tarun", branch: "EEE" }); objectStore.add({ rollno: 160218732028, name: "lokesh", branch: "CSE" }); objectStore.add({ rollno: 160218737025, name: "abdul", branch: "IT" }); objectStore.add({ rollno: 160218736055, name: "palli", branch: "MECH" }); } transaction.oncomplete = function () { db.close(); }; </script> </body> </html>
输出
0 160218732028 {rollno: 160218732028, name: 'lokesh', branch: 'CSE'} 1 160218733028 {rollno: 160218733028, name: 'tarun', branch: 'EEE'} 2 160218736055 {rollno: 160218736055, name: 'palli', branch: 'CSE'} 3 160218737025 {rollno: 160218737025, name: 'abdul', branch: 'IT'} 4 160218737028 {rollno: 160218737028, name: 'jason', branch: 'IT'}
广告