demo执行前:
var request = indexedDB.open('dataBase', 1);//打开/创建一个数据库,名为student,版本为1. //indexedDB.deleteDatabase('class');//删除名为class的数据库 var dbase; //第一次创建数据库或者更新数据库 request.onupgradeneeded = function() { dbase = this.result; //创建表 var store = dbase.createObjectStore('student', { keyPath: 'id' }); store.createIndex('id', 'id', { unique: true }) store.createIndex('name', 'name', { unique: false }) store.createIndex('score', 'score', { unique: false }) }; //成功打开数据库 request.onsuccess = function() { dbase = this.result; var transaction = dbase.transaction(['student'], 'readwrite'); //打开一个事务,使用‘student’ object store,以读写模式 var store = transaction.objectStore('student'); //获取student object Store var index = store.index('id');//查询索引 //添加 //添加一条数据:add()时要保证当前表内不存在要添加的id值 //当不确定时,建议使用put();put:存在时修改,不存在时添加 var resadd = store.add({ 'id': 5, 'name': 'skymobi', 'score': 75 }); resadd.onsuccess = function(){ console.log("添加成功!"); } resadd.onerror = function(e){ console.error(e.target.error); } //删除 //删除id(主键)为3的数据(请先添加数据) store.delete(3); //修改 store.put({ 'id': 4, 'name': 'surfaceStudio', 'score': 95 }); //查询所有数据 var rq = index.openCursor(); rq.onsuccess = function() { var cursor = this.result; if(cursor) { console.log(cursor.value); cursor.continue(); } } //查询单个数据 //查询id为2的数据(请先添加数据) var range = IDBKeyRange.only(2); var rqRange = index.openCursor(range); rqRange.onsuccess = function() { var cursor = rqRange.result; if(cursor) { console.info(cursor.value); } } }执行后
更多详细API请见:https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore
新闻热点
疑难解答