HTML5本地存储indexDB新建数据库、数据库增删改查操作

SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库 简单介绍了一下本地存储的概念,并以WebSQL为例,介绍如何通过WebSQL在H5中存储一个本地数据库实例。 阅读详情

这里写图片描述

代码如下:

<!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>indexDB</title>
    <style>
        .outbox{
            width:300px;
            display:inline-block;
            border:1px solid #ccc;
        }
        .innerbox{
            height:400px;
            color:#333;
            line-height:20px;
            font-size:12px;
            width:300px;
        }
    </style>
</head>
<body>
<div class="outbox">
    <button>IndexDB新增操作</button>
    <div class="innerbox" id="content1"></div>
</div>
<div class="outbox">
    <button>IndexDB修改操作</button>
    <div class="innerbox" id="content2"></div>
</div>
<div class="outbox">
    <button>IndexDB删除操作</button>
    <div class="innerbox" id="content3"></div>
</div>
<div class="outbox">
    <button>IndexDB遍历操作</button>
    <div class="innerbox" id="content4"></div>
</div>
<script>
    var content = null;
    // 本演示使用的数据库名称
    var dbName = 'project';
    // 版本
    var version = 1;
    // 数据库数据结果
    var db;

    // 打开数据库
    var DBOpenRequest = window.indexedDB.open(dbName, version);
    
    // 如果数据库打开失败
    DBOpenRequest.onerror = function(event) {
        logError('数据库打开失败');
    };
    
    DBOpenRequest.onsuccess = function(event) {        
        // 存储数据结果
        db = DBOpenRequest.result;
    };
    
    // 下面事情执行于:数据库首次创建版本,或者window.indexedDB.open传递的新版本(版本数值要比现在的高)
    DBOpenRequest.onupgradeneeded = function(event) {
        db = event.target.result;
     
        db.onerror = function(event) {
            logError('数据库打开失败');
        };
    
        // 创建一个数据库存储对象
        var objectStore = db.createObjectStore(dbName, { 
            keyPath: 'id',
            autoIncrement: true
        });
    
        // 定义存储对象的数据项
        objectStore.createIndex('id', 'id', {
            unique: true    
        });
        objectStore.createIndex('name', 'name');
        objectStore.createIndex('begin', 'begin');
        objectStore.createIndex('end', 'end');
        objectStore.createIndex('person', 'person');
        objectStore.createIndex('remark', 'remark');
    };
    
    var method = {
        // 添加数据
        add: function (newItem) {
            var transaction = db.transaction([dbName], "readwrite");
            // 打开已经存储的数据对象
            var objectStore = transaction.objectStore(dbName);
            // 添加到数据对象中
            var objectStoreRequest = objectStore.add(newItem);        
            objectStoreRequest.onsuccess = function(event) {
                alert('新增成功!');
            };
        },
        // 更新数据
        update: function (id, data) {
            // 编辑数据
            var transaction = db.transaction([dbName], "readwrite");
            // 打开已经存储的数据对象
            var objectStore = transaction.objectStore(dbName);
            // 获取存储的对应键的存储对象
            var objectStoreRequest = objectStore.get(id);
            // 获取成功后替换当前数据
            objectStoreRequest.onsuccess = function(event) {
                // 当前数据
                var myRecord = objectStoreRequest.result;
                // 遍历替换
                for (var key in data) {
                    if (typeof myRecord[key] != 'undefined') {
                        myRecord[key] = data[key];
                    }
                }
                // 更新数据库存储数据                
                objectStore.put(myRecord);
            };
        },
        // 删除数据
        del: function (id) {
            // 打开已经存储的数据对象
            var objectStore = db.transaction([dbName], "readwrite").objectStore(dbName);            
            // 直接删除            
            var objectStoreRequest = objectStore.delete(id);
            // 删除成功后
        },
        // 通过主键key单个记录数据,主键是前面开始设置的相应key值
        get: function (key) {
            var transaction = db.transaction([dbName], "readwrite");
            var store = transaction.objectStore(dbName);
            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);
            };
        },
        // 遍历数据表
        cursor: function () {
            var transaction = db.transaction([dbName], "readwrite");
            var store = transaction.objectStore(dbName);
            var request = store.openCursor();//打开游标
            var arr = [];
            request.onsuccess = function(e) {
                var cursor = e.target.result;
                if (cursor) {
                    console.log(cursor);
                    arr.push(cursor.value);
                    cursor.continue();
                }
                content = JSON.stringify(arr);
            };
        }
    };
    let count = 0;
    // 新增
    document.querySelectorAll('button')[0].onclick = function () {
        // method.cursor();
        method.add({name: 'zyc' + count++, begin: '2012-12-22', end: '2122-32-44', person: 'dada', remark: 'dada'});
        method.cursor();    // 遍历所有数据库表project的记录,并输出到div里面
        document.querySelector("#content1").innerHTML = content;
    }
    // 修改
    document.querySelectorAll('button')[1].onclick = function () {
        method.update(3, {name: '我是更改的值id=3', begin: '2012-12-22', end: '2122-32-44', person: 'dada', remark: 'dada'});
        method.cursor();    // 遍历所有数据库表project的记录,并输出到div里面
        document.querySelector("#content2").innerHTML = content;
    }
    // 删除
    document.querySelectorAll('button')[2].onclick = function () {
        method.del(2); // 删除主键key id = 2的值
        method.cursor();    // 遍历所有数据库表project的记录,并输出到div里面
        document.querySelector("#content3").innerHTML = content;
    }
    // 遍历
    document.querySelectorAll('button')[3].onclick = function () {
        method.cursor();    // 遍历所有数据库表project的记录,并输出到div里面
        document.querySelector("#content4").innerHTML = content;
    }
    </script>
</body>
</html>
html最简单的增删改查实现方式 用js实现的一个增删改查,给学校javascript的同学用 立即下载

相关推荐

基于H5的学生管理系统,主要实现增删改查

基于HTML5的学生管理系统,主要实现学生数据的增删改查,主要用HTML5+CSS3

html5 mysql操作_HTML5本地数据库基础操作详解

下面分别介绍本地数据库的各个API及其使用方法。1、利用openDatabase创建数据库我们可以利用openDatabase方法创建数据库。openDatabase方法传递五个参数,分别是:数据库名、数据库版本号(可省略)、对数据库的描述、设置分配的数据库的大小、回调函数。如果我们要创建一个本地数据库,可以执行如下代码:var myWebDatabase = openDatabase(“user...

weixin_29558841的博客 397

UPF2.1进阶指南:如何优雅地处理Hard Macro与Top-Level Port的电源意图

本文深入解析UPF2.1在复杂SoC设计中的高级电源意图建模,重点探讨Hard Macro与顶层端口的电源管理实战技巧。通过`power_model`和`set_port_attribute`的高级应用,解决第三方硬核IP电源建模不透明、顶层端口电源属性定义不当等工程难题,提供可靠的电源管理方案,确保芯片设计性能与功耗的精确控制。

weixin_30443747的博客 170

通过HTML网页对mysql数据库进行增删改查(CRUD实例)

在HTML页面对Mysql数据库进行增删改查,CRUD案例 基于HTML + 一点点入门Spring +Mysql 从前端到后端的实操案例,附带项目源代码

yvge669的博客 2万+

STM32CubeMx + FatFs 实战:SD卡DMA传输中断回调问题深度解析

本文深度解析了在STM32CubeMx环境下,结合FatFs文件系统并使用DMA进行SD卡读写时,程序可能出现的“卡死”问题。核心原因在于HAL库的弱函数回调机制未被正确处理,导致DMA传输完成中断后,状态机锁死。文章提供了两种实战修复方案:直接修改HAL库文件或在用户代码中重写回调函数,并给出了关键的配置检查点与调试技巧,帮助开发者彻底解决SD卡DMA传输中断回调失效的难题。

weixin_29176179的博客 330

论文理解【LLM-Agent】——【SkillOpt】Executive Strategy for Self-Evolving Agent Skills

SkillOpt 将 agent skill 从人工或一次性 prompt artifact 转化为可验证、可控、可迁移的文本空间“可训练状态”,通过有界编辑、验证门控、拒绝编辑反馈和 slow/meta update,在不更新模型权重的情况下显著提升多类 agent 任务表现

佚失的诗篇 590

indexDB本地存储

HTML5新增了一种被称为indexDB的数据库,indexDB数据库是一种存储在客户端本地的NOSQL数据库。 indexDB是一个对象数据库,而不是关系数据库。 1、创建(打开)本地数据库 // indexedDB.open("数据库名",版本号); var request = indexedDB.open("mydb", 1.0); // onerror 事件表示请求失败 触发的事件 request.onerror = function () { console.log('创建或打开数据库失

你要走就走的博客 1669

基于深度学习的火焰检测系统:YOLOv8 + UI界面 + 数据集详解

YOLO(You Only Look Once)是一种端到端的目标检测算法,其最大优势在于将目标检测任务转化为一个回归问题,可以在一次前向传播中同时完成目标定位和分类。YOLOv8是YOLO系列中的最新版本,相比之前的版本,YOLOv8在精度和推理速度上都做了显著提升,特别是在小物体检测方面表现更加优秀。实时性:YOLOv8具有较高的推理速度,适用于实时火焰检测。高精度:相较于YOLOv7,YOLOv8在精度和小物体检测上有所改进。简单易用:YOLOv8的API简单直观,易于集成和使用。

YOLO 660

HTML5本地数据库--IndexDB的基本操作

HTML5本地数据库–IndexedDB的基本操作IndexedDB是一个用于在浏览器中存储较大数据结构的Web API,并且提供了索引功能以实现高性能查找。和其他基于SQL的关系型数据库一样,indexedDB是一个事务型的数据库系统,然而它是使用JavaScript对象,而不是列数固定的表格来存储数据的。和一般的数据库一样,基础操作就那几种,创建/打开数据库,创建/打开表,对数据的增删查改。1.

Zachery Wu 7014

软考高级系统架构设计师历年论文真题深度分析(2011-2025)

本文系统分析了2011-2025年系统架构设计师论文真题,归纳出十大主题类别,包括架构风格、企业集成、数据技术、非功能属性等。研究发现新兴技术占比最高(18.8%),企业集成、数据架构和非功能属性为三大核心考点。论文命题呈现明显技术演进特征,从经典架构理论逐步转向云原生、AI融合等前沿方向。备考建议重点关注高频考点和技术前沿,同时强化场景化解决方案能力。分析表明,架构师考试持续跟踪行业技术发展,注重理论与实践结合,为考生提供了明确的备考方向。

一几文的编程学习笔记。 2041

9篇6章7节:SEER 数据库的2025年数据变量多条件组合选择(2026年版)

软件中的病例筛选功能通过CaseSelection界面实现精准研究队列构建。该界面允许用户通过变量选择(Variable)、运算符定义(Operator)和取值设定(Values)三步操作创建筛选条件,支持种族、分期等关键变量的多条件组合。

MD Code 1455

php indexdb,HTML5浏览器的数据库引擎IndexDB使用例子

本文章来为各位介绍一篇关于HTML5 - 浏览器的数据库引擎IndexDB使用详解希望这篇文章能够帮助到各位朋友,有兴趣的同学可以进来看看吧。1,IndexedDB介绍IndexedDB标准是HTML5官方认可的本地数据库解决方案。其目的不是取代服务器端数据库,它在一些特定场景下很有用:(1)创建自给自足的离线应用比如页面可以在有网络连接的时候从服务器端数据库获取所需要的数据,然后将数据保存到本地...

weixin_33821493的博客 666

极智芯 | 解读国产CPU之海光

大家好,我是极智视界,本文分享一下 解读国产CPU之海光。希望我的分享能对你的学习有一点帮助。

极智视界 3319

indexDB学习笔记——结合TodoList实战(附源码)

结合TodoList实战,掌握IndexDB增删改查的使用,解锁浏览器GB级存储能力

weixin_44134001的博客 856

在 ABAP 平台上搭建 OAuth 2.0 Server:架构、流程、权限与落地实战

摘要:本文为SAP ABAP开发人员提供将ABAP平台配置为OAuth 2.0授权服务器的实战指南。重点介绍两种授权流程(授权码和SAML Bearer)的实现方案,包括核心事务配置(SOAUTH2/SAML2)、授权对象(S_SCOPE)管理以及端点交互规范。通过具体配置清单和三类典型集成场景(第三方Web应用访问OData、企业集成平台调用、BTP应用对接)的落地示例,帮助读者快速构建安全的OAuth 2.0服务架构。文档强调SSL/TLS基础安全、scope最小授权原则以及授权与令牌端点的标准交互模式

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 311

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

html5 数据存储之indexDB(一)

html5 数据存储之indexDB(一)       indexed Database API,或简称为indexDB,实在浏览器中保存结构化数据的一种数据库,indexDB是为了替代目前已被废弃的WBDSQL,indexDB的思想是创建一套API,方便保存和读取javascript对象,同事还支持查询及搜索。       1、数据库        indexDB 就是一个数据库,与Mys

tiger_gy的博客 5342

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

html5 websql indexdb,【H5】本地数据库indexdb

HTML5 的一个重要特性是本地数据持久性,它使用户能够在线和离线访问 Web 应用程序。IndexedDB支持本地存储大量对象,并使用健壮的数据访问机制检索数据。与 Web Storage 相比,IndexedDB 具有多个优势,其中包括索引、事务处理和健壮的查询功能。一个网站能够创建多个本地数据库,其中每个数据库都可以存放多个数据对象,一个对象中有存在多个数据集合,每个数据集合中有多个键值对。...

weixin_39622891的博客 552

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

indexDB快速上手

IndexedDB是浏览器内置的异步数据库,支持大容量存储(GB级)和复杂数据类型。核心概念包括数据库、对象仓库(表)、索引、事务和游标。操作指南:创建数据库使用indexedDB.open();添加数据通过事务的add()方法;删除数据需提供主键;更新数据用put()方法。查询支持按主键查询和范围查询(使用游标)。所有操作均为异步,确保不阻塞主线程,适合存储大量结构化数据。

zheshiyangyang的博客 1221

HTML5本地数据库(WebSQL和IndexDB)

一、WebSQL WebSQL是前端的一个独立模块,是web存储方式的一种,我们调试的时候会经常看到,只是一般很少使用。并且,当前只有谷歌支持,ie和火狐均不支持。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6CM9dFv-1609421143537)(en-resource://database/4497:1)] 我们对数据库的一般概念是后端才会跟数据库打交道,进行一些业务性的增删改查。而这里的数据库也不同于真正意义上的数据库。 Websql的关键技术点分为: 测试

天涯学馆 2629

HTML5 本地存储--浏览器数据库 IndexedDB的介绍

HTML5 本地存储--浏览器数据库 IndexedDB的介绍1.背景2.含义3.特点4.基本使用1. 打开数据库(1)success 事件(2)error 事件(3)upgradeneeded 事件2.增加数据3.更新数据4.查看数据5.删除数据6.删除数据库 1.背景 随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;Lo

sun923873651的博客 320

html5 indexeddb 排序,HTML5 进阶系列:indexedDB 数据库

前言在 HTML5 的本地存储中,有一种叫 indexedDB 的数据库,该数据库是一种存储在客户端本地的 NoSQL 数据库,它可以存储大量的数据。从上篇:HTML5 进阶系列:web Storage ,我们知道 web Storage 可以方便灵活的在本地存取简单数据,但是对于大量结构化存储,indexedDB 的优势就更加明显。接下来我们来看看 indexedDB 如何存储数据。连接数据库一...

weixin_30036893的博客 656

html5使用indexed DB数据库实现雇员信息的增删改查

题目: 自己设计界面,使用indexed DB数据库实现雇员信息的增删改查,雇员信息必须包含(雇员id、姓名、所属部门、入职日期、职位、薪资) html界面: <div style="width: 30%;margin: 10% auto;"> <form action=""> <fieldset> <legend>雇员信息</legend>

php的绯闻女友 539

浏览器数据库indexDB方法封装

浏览器数据库indexDB

zhang_zan 1195

前端ServiceWorker + IndexDB实现离线应用与性能优化

以下是 ‌IndexedDB核心定义。

qq_39345059的博客 1492

uniapp本地数据库_Uniapp教程|App/uni-app离线本地存储方案

5+App的离线存储HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie、localstorage、sessionstorage、websql、indexedDBHTML5Plus扩展方案:plus.navigator.setCookie、plus.storage、plus.io、plus.sqllitecookie(标准h5方案)体量最小,可以设置过期时间。不能跨域。loc...

weixin_35131453的博客 6089

【16】本地数据库indexdb

HTML5 的一个重要特性是本地数据持久性,它使用户能够在线和离线访问 Web 应用程序。IndexedDB支持本地存储大量对象,并使用健壮的数据访问机制检索数据。与 Web Storage 相比,IndexedDB 具有多个优势,其中包括索引、事务处理和健壮的查询功能。一个网站能够创建多个本地数据库,其中每个数据库都可以存放多个数据对象,一个对象中有存在...

业余玩家 308
上一篇: Vue filter格式化时间戳时间成标准日期格式
下一篇: 原生javascript实现H5拖拽效果。
#麻辣小龙虾#
博客等级 码龄11年 1万+粉丝 235原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值