履行完之后就有了一张order_data的表,如下所示:
如今要萌芽某个orderId的数据,可履行以下代码:
- function query(orderId){
- db.transaction("order_data", "readonly") //IDBTransaction .objectStore("order_data") //IDBObjectStore .get(orderId) //IDBRequest .onsuccess = function(event){
- var order = event.target.result;
- console.log(order)
- };
- }
结不雅如下图所示:
- select order_id from order_data where order_id = ${order.orderId}
怎么萌芽value字段琅绫擎的数据呢?如要萌芽state为CA的订单,那么给state这个字段添加一个索引就可以萌芽 了,如下所示:
这里就可以知道,为什么要叫IndexedDB或者索引数据库了,因为它主如果经由过程创建索引进行萌芽的。
膳绫擎只返回了一个结不雅,然则一般须要获取全部的结不雅,就得应用游标cursor,如下代码所示:
IndexedDB还支撑插入json格局不一样的数据,如下代码:
- insert into student(grade, score) values(5, 88);
(2)非关系型数据库的横向扩大
膳绫擎说关系型数据库晦气于横向扩大,而在一般的非关系型数据库琅绫擎,每个数据存储的类型都可以不一样,即每个key对应的value的json字段格局可以不一致,所以不存在添加字段的问题,而雷同类型的字段可以创建索引,进步萌芽效力。
(3)兼容性
插入一个反复主键,这里为id,executeSql的掉败函数将会履行,如下所示:
WebSQL兼容性如下caniuse所示:
主如果IE和火狐不支撑,而IndexedDB的兼容性会好很多:
8. 数据库与Promise
数据库的查找,添加等都是异步操作,有时刻你可能须要先发个请求获取数据,然后插入数据,反复N次之后,再萌芽数据。例如我须要先一条条地向谷歌办事器解析地址,再插入数据库,然后再做萌芽。在萌芽数据之前须要包管数据已经都全部写到数据库琅绫擎了,可以用Promise解决,在包管效力的同时达到目标。如下代码所示:
推荐阅读
人平易近法院大年夜数据治理和办事平台已经汇聚了全公法院1.08亿件案件信息,成为全世界最大年夜的审判信息资本库。在聪明法院扶植中,发掘这些司法大年夜数据的潜在价值,应用云计算等技>>>详细阅读
本文标题:前端与SQL
地址:http://www.17bianji.com/lsqh/35701.html
1/2 1