==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(); //关闭数据库