首页 > 数据库 >HTML5本地存储IndexedDB基础介绍(-)-数据库的简单增删改查

HTML5本地存储IndexedDB基础介绍(-)-数据库的简单增删改查

时间:2023-01-31 17:34:48浏览次数:53  
标签:IndexedDB function console log 改查 db HTML5 myDB name

//https://www.jianshu.com/p/4c74cbe60d83?_=1509695140 

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="author" content="sina_mobile"> <meta name="format-detection" content="telephone=no" /> <title></title> </head> <body> <script> var myDB={ name:'univisity', version:1, db:null, ojstore:{ name:'students',//存储空间表的名字 keypath:'id'//主键 } }; var INDEXDB = { indexedDB:window.indexedDB||window.webkitindexedDB, IDBKeyRange:window.IDBKeyRange || window.webkitIDBKeyRange,//键范围 openDB:function(dbname,dbversion,callback){ //建立或打开数据库,建立对象存储空间(ObjectStore) var self = this; var version = dbversion || 1; var request = self.indexedDB.open(dbname,version); request.onerror = function(e){ console.log(e.currentTarget.error.message); }; request.onsuccess = function(e){ myDB.db = e.target.result; console.log('成功建立并打开数据库:'+myDB.name+' version'+dbversion); }; request.onupgradeneeded=function(e){ var db=e.target.result,transaction= e.target.transaction,store; if(!db.objectStoreNames.contains(myDB.ojstore.name)){ //没有该对象空间时创建该对象空间 store = db.createObjectStore(myDB.ojstore.name,{keyPath:myDB.ojstore.keypath}); console.log('成功建立对象存储空间:'+myDB.ojstore.name); } } }, deletedb:function(dbname){ //删除数据库 var self = this; self.indexedDB.deleteDatabase(dbname); console.log(dbname+'数据库已删除') }, closeDB:function(db){ //关闭数据库 db.close(); console.log('数据库已关闭') }, addData:function(db,storename,data){ //添加数据,重复添加会报错 var store = store = db.transaction(storename,'readwrite').objectStore(storename),request; for(var i = 0 ; i < data.length;i++){ request = store.add(data[i]); request.onerror = function(){ console.error('add添加数据库中已有该数据') }; request.onsuccess = function(){ console.log('add添加数据已存入数据库') }; } }, putData:function(db,storename,data){ //添加数据,重复添加会更新原有数据 var store = store = db.transaction(storename,'readwrite').objectStore(storename),request; for(var i = 0 ; i < data.length;i++){ request = store.put(data[i]); request.onerror = function(){ console.error('put添加数据库中已有该数据') }; request.onsuccess = function(){ console.log('put添加数据已存入数据库') }; } }, getDataByKey:function(db,storename,key){ //根据存储空间的键找到对应数据 var store = db.transaction(storename,'readwrite').objectStore(storename); var request = store.get(key); request.onerror = function(){ console.error('getDataByKey error'); }; request.onsuccess = function(e){ var result = e.target.result; console.log('查找数据成功') console.log(result); }; }, deleteData:function(db,storename,key){ //删除某一条记录 var store = store = db.transaction(storename,'readwrite').objectStore(storename); store.delete(key) console.log('已删除存储空间'+storename+'中'+key+'记录'); }, clearData:function(db,storename){ //删除存储空间全部记录 var store = db.transaction(storename,'readwrite').objectStore(storename); store.clear(); console.log('已删除存储空间'+storename+'全部记录'); } } var students=[{ id:1001, name:"Byron", age:24 },{ id:1002, name:"Frank", age:30 },{ id:1003, name:"Aaron", age:26 }]; INDEXDB.openDB(myDB.name,myDB.version); setTimeout(function(){ console.log('****************添加数据****************************'); INDEXDB.addData(myDB.db,myDB.ojstore.name,students); // console.log('******************add重复添加**************************'); // INDEXDB.addData(myDB.db,myDB.ojstore.name,students); // console.log('*******************put重复添加*************************'); // INDEXDB.putData(myDB.db,myDB.ojstore.name,students); // console.log('*******************获取数据1001*************************'); // INDEXDB.getDataByKey(myDB.db,myDB.ojstore.name,1001); // console.log('******************删除数据1001************'); // INDEXDB.deleteData(myDB.db,myDB.ojstore.name,1001); // console.log('******************删除全部数据************'); // INDEXDB.clearData(myDB.db,myDB.ojstore.name); // console.log('******************关闭数据库************'); // INDEXDB.closeDB(myDB.db); // console.log('******************删除数据库************'); // INDEXDB.deletedb(myDB.name); },800) </script> </body> </html>

  

标签:IndexedDB,function,console,log,改查,db,HTML5,myDB,name
From: https://www.cnblogs.com/chinasoft/p/17079943.html

相关文章

  • HTML5新标签
      最近在学习Vue的基础知识,发现有关H5的新内容不是很熟悉,再次整理一下1.头部标签<header><header></header> 2.导航标签<nav><nav>导航</nav> 3.......
  • HTML5实现动态视频背景
    HTML5实现动态视频背景html代码<videoid="v1"autoplayloopmuted><sourcesrc="https://wallpaperm-mp4.duba.com/scene/preview_video/97ba6b60662ab4f31ef0......
  • 增删改查实现
           ......
  • HTML5 前端大文件上传
    ​ 之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上......
  • HTML5
    新增的标签语义化标签header头部标签nav导航标签article内容标签section定义文档的某个区域aside侧边栏标签footer尾部标签上面的标签都是语义化标签,没有......
  • 7000字MySQL学习手册:整数、小数类型...时间日期类型、增删改查
    文章目录​​前言​​​​一、MySQL入门基础第二天学习​​​​二、开始学习​​​​列类型(字段类型)​​​​无符号标识设定​​​​显示长度​​​​小数类型​​​​浮点......
  • html5 二进制文件操作基础
    Blob、ArrayBuffer、File、fileReader、formData这些名词总是经常看到,这些名词里,Blob、ArrayBuffer、File可以归为一类,它们都是数据;而fileReader算是一种工具,用来读取数据......
  • idea增删改查环境设置
    一、环境设置1、Settings--Build,Execution,Deployment--Maven 2、Settings--Build,Execution,Deployment--Compiler--JavaCompiler  3、ProjectSettings--Pr......
  • 实现有序表的增删改查
    实现有序表的增删改查题目测试数据代码 /*有序表的增删改查操作*/#include<stdio.h>#defineMAXN10000/*定义符号常量表示数组a的长度*/intCount......
  • 2.Prometheus的Relabeling机制(标签的增删改查)
    1.Relabeling标签重写介绍2.relabel功能详解3.标签增删改查3.1使用keep对标签值进行匹配保留regex的targets3.2使用drop对标签值进行匹配删除regex的targets3.3使用......