indexedDB数据库操作

一、indexedDB数据库简介

1. IndexedDB 允许储存大量数据,提供查找接口,建立索引。
2.不支持 SQL 查询语句
3. 数据存取异步实现
4. 同源限制
5. 支持二进制存储(比如图片base64)

二、indexedDB数据库基本使用方法

http://www.ruanyifeng.com/blog/2018/07/indexeddb.html
https://wangdoc.com/javascript/bom/indexeddb.html

三、indexedDB常用操作

1. 多索引查询查询单条数据

var connect_DB = db.transaction(['indexedDB表名']);var affair_Object = connect_DB.objectStore('indexedDB表名');//可以多加几个索引参数,实现多索引查询var index = affair_Object.index('索引1','索引2');//选择表索引名var result=index.get('索引1的值','索引2的值');//找出匹配索引值的所有记录result.onerror = function(e) {
	console.log('事务失败');};result.onsuccess = function(e) {
	var outcome = e.target.result;
	if (outcome) {
		console.log(outcome)
	} else {
		console.log("没有记录")
	}};

2. 游标查询–对索引进行范围内查询(单一索引)

var transaction = db.transaction(['表名'], 'readonly');//创建事务var objectStore = transaction.objectStore('表名');//获取对象仓库//IDBIndex 对象var myIndex = objectStore.index('索引名');//获取 IDBIndex 对象。var keyRangeValue = IDBKeyRange.bound(13,15);//该索引的值在13-15之间myIndex.openCursor(keyRangeValue).onsuccess = function(e) {
	var cursor = e.target.result;
	if (cursor) {//会不断循环遍历直到执行else
		console.log(cursor.value);//每条数据的值
		console.log(cursor.key);//这里的值就是索引old(objectStore.index('old');)的值
		cursor.continue();
	} else {
		console.log('查询完毕.');
	}};

3. 查询某主键范围内的值
比如要查询主键值在5-15内的数据

var keyRangeValue = IDBKeyRange.bound(1, 14);//获取1-14之间的主键值的记录var connect_DB=db.transaction(['表名'], 'readonly');//创建事务var affair_Object=connect_DB.objectStore('表名');//获取对象仓库affair_Object.openCursor(keyRangeValue).onsuccess = function(e) {
	var cursor = e.target.result;
	console.log(cursor);
	if (cursor) {//会不断循环遍历直到执行else
		console.log(cursor.value);//每条数据的值
		console.log(cursor.key);//每条数据的主键值
		cursor.continue();//使用该函数才可以使游标移动到下一位,否则只有一条数据
		//cursor.continue();等价于cursor.advance(1);
	} else {
		console.log('查询完毕.');
	}};

               

上一篇:IndexDB


下一篇:存储方案