ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

indexedDB数据库操作

2021-05-07 22:01:34  阅读:187  来源: 互联网

标签:indexedDB console log 数据库 查询 cursor 索引 var 操作


一、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('查询完毕.');
	}};

               

标签:indexedDB,console,log,数据库,查询,cursor,索引,var,操作
来源: https://blog.51cto.com/u_14175378/2759935

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有