indexDB数据库

==indexDB数据库是使用对象保存数据,而不是用表来存放数据。一个IndexedDB数据库,就是众多对象的集合。

==数据库的使用:

  ==创建数据库:

    1、获取indexDB 数据库:

      var indexDB = window.indexedDB;

    2、创建indexDB 数据库下的空间对象(第一级):

      var openRequest = window.indexedDB.open("user", 1);

      user为在indexDB 数据库内的一个空间对象,如果没有这个空间对象,就会默认开辟一个新的空间对象并命名为user。

      1为版本号,通常版本号必须对应才能打开。

    3、创建indexDB 数据库下一级空间对象内的空间对象(第二级):

openRequest.onupgradeneeded = function() {
  var db = this.result;
  if (!db.objectStoreNames.contains("users")) {   //p判断是否有同名空间对象
    db.createObjectStore("users", {                 //创建空间
      autoIncrement: true                            //让空间内储存的内容的索引自增
    });

  };
};

==存储数据

1、打开数据库并获取数据库对象
var openRequest = window.indexedDB.open("user", 1);


openRequest.onsuccess = function() {//数据库打开成功,获取db对象
var db = this.result;


2、开启事务
var transaction = db.transaction(["users"], "readwrite");   //users代表对应的第二级存储空间,

                                 //readwrite,代表将要执行的操作的类型(读写

                                   //readonly===>只读

                                  //vesionchange====>版本变更

3、获取空间对象
var noteStore = transaction.objectStore("users");


4、添加数据
noteStore.add(note);//note====>要添加的数据


5、关闭数据库
db.close();
}

==删除或修改数据

  var openRequest = window.indexedDB.open("user", 1);        //打开数据库并获取数据库对象

  openRequest.onsuccess = function() {                                    //开启对象空间

  var db = this.result;
  var transaction = db.transaction(["users"], "readwrite");           //开启事务
  var noteStore = transaction.objectStore("users");                    //获取空间对象
  noteStore.openCursor().onsuccess = function() {                    //使用存储空间对象发出打开游标的请求

    var cursor = this.result;                                                      //获取游标对象
    if (cursor) {                                                                         //如果游标不为空,说明还有数据
    if(cursor.value.name==""){                                                //条件
      noteStore.delete(cursor.key)                                     //删除某种条件的数据

      cursor.value.name = "username"                              //修改某种条件的数据

    };
    cursor.continue();                                                             //取出一条之后,将游标指向下一个数据。
  }
}
db.close();                                                                                       //关闭数据库

 

你好!如果你有什么更好的建议或意见,请在评论区留言。感谢你的阅读!
原文地址:https://www.cnblogs.com/YCxiaoyang/p/7425691.html