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('查询完毕.');
	}
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值