IndexedDB基本使用

IndexedDB基本使用
Student 案例

//打开数据库
function openDB (name,version) {
    var version=version || 1;
    var request=window.indexedDB.open(name,version);
    request.onerror=function(e){
        console.log(e.currentTarget.error.message);
    };
    request.onsuccess=function(e){
        myDB.db=e.target.result;
    };
    request.onupgradeneeded=function(e){
        var db=e.target.result;
        if(!db.objectStoreNames.contains('students')){
            db.createObjectStore('students',{autoIncrement: true});
        }
        console.log('DB version changed to '+version);
    };
}



var students=[{ 
    id : 1,
    uid:1001, 
    name:"AA", 
    age:24,
    toId : 1002 
},{ 
    id : 2,
    uid:1001, 
    name:"AA", 
    age:24,
    toId : 1003 
},{ 
    id : 3,
    uid:1001, 
    name:"AA", 
    age:24,
    toId : 1002 
}];

//添加数据到数据表
function addData(db,storeName){
    var transaction=db.transaction(storeName,'readwrite'); 
    var store=transaction.objectStore(storeName); 

    for(var i=0;i<students.length;i++){
        store.add(students[i]);
    }
}

//查找数据
function getDataByKey(db,storeName,value, success){
    var transaction=db.transaction(storeName,'readwrite'); 
    var store=transaction.objectStore(storeName); 
    var request=store.get(value); 
    request.onsuccess=function(e){ 
        // var obj = e.target.result; 
        // console.log(obj); 
        success(e);
    };
}

//更新数据
function updateDataByKey(db,storeName,value){
    var transaction=db.transaction(storeName,'readwrite'); 
    var store=transaction.objectStore(storeName); 
    var request=store.get(value); 
    request.onsuccess=function(e){ 
        var student=e.target.result; 
        student.age=35;
        store.put(student); 
    };
}

//根据key删除数据
function deleteDataByKey(db,storeName,uid, toId){
    var transaction=db.transaction(storeName,'readwrite'); 
    var store=transaction.objectStore(storeName); 
    var request = store.openCursor();

    //查询到结果
    request.onsuccess = function(e) {
        var cursor = e.target.result;

        //判断结果是否为空
        if (cursor) {
            var id = cursor.key;
            var obj = cursor.value;

            //比对查询的数据是否是传入参数一致
            if (obj.uid == uid & obj.toId == toId) {
                //查询到指定数据, 执行回调
                //method(obj);

                store.delete(id);
            }
            //继续查询
            cursor.continue();
        }
    };
}

//清空表格
function clearObjectStore(db,storeName){
    var transaction=db.transaction(storeName,'readwrite'); 
    var store=transaction.objectStore(storeName); 
    store.clear();
}

var myDB={
    name:'test',
    version:3,
    db:null
};

// 打开数据库
openDB(myDB.name,myDB.version);

/* 使用 增 删 改 查 */
// getDataByKey(myDB.db,'students', "1001");
setTimeout(function(){
    addData(myDB.db,'students');
    
    // getDataByKey(myDB.db,'students', 1002, function(e){ 
    //     var obj = e.target.result; 
    //     console.log(obj); 
    // });
    
    // updateDataByKey(myDB.db,'students', 1001);
    // deleteDataByKey(myDB.db, "students", 1001, 1002);
    // clearObjectStore(myDB.db,"students");
},1000);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值