JS操作sqlite数据库

JavaScript读写本地SQLite数据库 通过这些代码,我们可以连接到SQLite数据库,执行查询和修改操作,并保存修改后的数据库文件。在使用JavaScript读写SQLite数据库之前,我们需要创建一个SQLite数据库文件。在JavaScript开发中,有时候我们需要对本地SQLite数据库进行读写操作。在进行JavaScript读写本地SQLite数据库之前,我们需要使用一些工具和库来实现这个功能。在JavaScript中,有许多库可以帮助我们与SQLite数据库进行交互,例如。当我们完成对数据库的读写操作后,应该关闭数据库连接。 阅读详情
AI摘要

本文介绍了如何使用JavaScript和sql.js库访问SQLite数据库,包括开发环境搭建、主要代码示例及数据库操作说明。

##JS操作SQLite数据库

###0.问题的由来

  • 一直非常讨厌MySql等等体积庞大的数据库,在项目里都是尽可能用SQLite数据库

  • 一个本地项目同时需要内网上能够简单的访问部分信息,因此涉及到JavaScript访问SQLite的问题

###1.问题的解决

####1.1sql.js库

有伟大的github在,当然不用自己写数据库访问库了。sql.js库是一个用Emscripten(别问我这是什么,我也不知道)从c++转译过来的访问sqlite3数据库的JS库,支持到最新的3.8.7.4版本的sqlite3.该库使用的时候只需引用单一的文件便可实现功能,完全脱离sqlite。

####1.2开发环境

1.EverEdit(推荐一下这个国产编辑器) 64bit

2.html+JavaScript+css+sql.js

3.准备一个sqlite的数据库文件,参考1 ,2

4.SQLiteSpy 软件

####1.3主要代码


<!DOCTYPE html>

<html>

	<head>

		<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />

		<script type="text/javascript" src="sql.js"></script>

	</head>

	<body>

		<button name="test" type="button" value="val" onclick="save()">Button Text</button>

		<input id="uploadInput" type="file" onchange="getfile()">

	</body>

	<script>

		function save() {

			

			//Create the database

			var db = new window.SQL.Database();

			

			db.run("CREATE TABLE test (列1 int, 列2 char);");			

			db.run("INSERT INTO test VALUES (0,'hello');");

			db.run("INSERT INTO test VALUES (1,'world');");

			db.run("INSERT INTO test VALUES (55,'34534545');");

			db.run("INSERT INTO test VALUES (166,'woteggrgrld');");

			//save to local file

			var data = db.export();

 			var arraybuff = data.buffer;

			var blob = new Blob([arraybuff]);

			var url = window.URL.createObjectURL(blob);

			

			var a = document.createElement("a");

			a.href = url;			

      	  	a.download = 'test.db';

        	a.click();

        	window.URL.revokeObjectURL(url);

			

		}



		function getfile() {

			

     	 	var files = document.getElementById("uploadInput").files;//document.getElementById("uploadInput").value;

			

			var file = files[0];

     	 	var fr = new FileReader();

			fr.onload = function(){

					

        		var Uints = new Uint8Array(fr.result);

					

        		var db = new window.SQL.Database(Uints);

        		

				var res = db.exec("SELECT 列2 FROM test");

				for(i=0;i<res[0].values.length;i++)

				{//query values

					console.log(res[0].values[i]+' ');

				}	

				



			}

			

			fr.readAsArrayBuffer(file);

			

		}

	</script>



</html>

####1.4几点说明

1.15-20行对数据库的操作是在内存中进行的,保存到本地的话需要执行21行后的代码。

2.上面代码保存到本地不会覆盖原数据库。

3.查询的时候res是一个保存了多行对象的数组。在代码文档里写到

We have the following table, named test :

id age name

1 1 Ling

2 18 Paul

3 3 Markus

We query it like that:


var db = new SQL.Database();

var res = db.exec("SELECT id FROM test; SELECT age,name FROM test;");



res is now :

[

   {columns: ['id'], values:[[1],[2],[3]]},
   {columns: ['age','name'], values:[[1,'Ling'],[18,'Paul'],[3,'Markus']]}

]

给个赏吧

如果我的文字解决了你的问题,请打个赏的,让我更有动力:)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t9uAcIwK-1605511739012)(http://oza71xi0c.bkt.clouddn.com/18-9-3/34854473.jpg)]

使用JavaScript和HTML5操作SQLite数据库的方法 在本文中,我们将介绍如何使用JavaScript和HTML5来操作SQLite数据库。通过使用JavaScript和HTML5,我们可以直接在浏览器中执行SQL查询和操作数据库。通过使用JavaScript和HTML5,我们可以轻松地在浏览器中操作SQLite数据库。我们可以创建数据库、创建表格、插入数据、查询数据、更新数据和删除数据。请注意,上述代码仅提供了基本的示例,实际应用中可能需要更多的错误处理和数据验证来确保数据库的安全性和一致性。一旦我们创建了数据库,接下来我们需要创建一个表格来存储数据。 阅读详情

相关推荐

第18课:JavaScript 引擎操作 SQLite 数据库

尽管 Electron 应用可以利用 localStorage API 将数据以键值的形式保存在客户端,但 localStorage 并不适合存储大量的数据,而且 localStorage 是通过键值存储数据的,比较适合保存配置信息,而不是海量的结构化数据,如二维表。因此,要想在 Electron 客户端保存更复杂的数据而且便于检索,就需要使用真正的数据库,如 SQLite、MySQL。 由于 E...

一个被知识诅咒的人 2218

如何用js操作sqlite创建表并查询数据

为了使用 JavaScript 操作 SQLite 数据库,你需要使用一个叫做 SQLite3 的模块。 这是一个示例代码来创建一个名为 "users" 的表,其中包含 "id"、"name" 和 "age" 这三列: const sqlite3 = require('sqlite3').verbose(); // 创建数据库连接 const db = new sqlite3.Database(...

weixin_35750953的博客 2070

js-sqlite.js

/** * 数据库操作类 * @param database 数据库名 * @param tableName 表名 * @param priKey 表主键 */ /** * 将数组或对象转成字符串信息用于在控制台显示 * console.log(displayProp(obj)); */ function displayProp(obj)

Node.js操作SQLite快速入门

Node.js操作SQLite

RHHcainiao的博客 3860

Node.js中最快,最简单SQLite3库。-Node.js开发

better-sqlite3 Node.js中用于SQLite3的最快,最简单的库。 全面的事务支持高性能,效率和安全性易于使用的同步API(比异步API更快...是的,您阅读的更好sqlite3 Node.js中SQLite3最快,最简单的库。全面的事务支持性能,效率和安全性易于使用的同步API(比异步API更快...是的,您没有看错)支持用户定义的函数,集合和扩展64位整数(在需要它们之前是不可见的) )帮助这个项目保持强大!:flexed_biceps:每天都有成千上万的开发人员和工程师使用Better-sqlite3。

js+html5操作sqlite数据库的方法

主要介绍了js+html5操作sqlite数据库的方法,以完整实例形式分析了JavaScript封装的html5操作SQLite数据库类,并分析了具体使用技巧,需要的朋友可以参考下

js -- 操作sqlite数据库

最近看到一个使用js来操作sqlite数据库的,测试了一下,具体使用的是 js操作类: https://github.com/kripken/sql.js/(sqlite js 驱动) 异步请求:http://npm.taobao.org/package/axios(异步请求插件,只有12.6k) 这里使用的js驱动是和服务器端使用方法一致,sql标准语法都支持,可以用第三方管理工具来...

weixin_30458043的博客 1597

导带、价带

价带是电子的“束缚态”能量区间,决定材料的化学性质;导带是电子的“自由态”能量区间,直接决定材料的导电能力;禁带宽度则是区分金属、半导体与绝缘体的核心参数。通过调控能带结构(如掺杂、应变工程),可设计出具有特定电学和光学特性的功能材料,推动电子信息、能源转换等领域的技术革新。

weixin_51552564的博客 5116

Web 应用如何使用sqlite?使用 sql.js 实现前端 SQLite 数据库操作

在 Web 应用开发中,前端数据处理的重要性日益增加。为了实现更高效的前端数据管理,特别是在处理结构化数据时,sql.js 提供了一个出色的解决方案。sql.js 是将 SQLite 数据库编译为 JavaScript 的库,允许开发者在浏览器环境中直接操作 SQLite 数据库。本教程将详细介绍如何使用 sql.js 实现多张表的关联操作,从而提高前端数据处理的灵活性和效率。sql.js 是一个用 JavaScript 实现的 SQLite 数据库。

乐闻世界 3159

运放 + MOS管构成的恒流电路分析及实用环境器件参数选择

恒流电路

五花带点肉 2万+

乐视三合一体感摄像头--基本信息及windows下部分开发

乐视三合一体感摄像头--基本信息及windows下部分开发Introduction基本信息Windows下使用安装驱动使用openNI使用imageJ调用RGB图像Q:参考资料 Introduction       乐视三合一体感摄像头是乐视对标kinect,做的一款3D体感摄像头;设计目的为用于电视机上体感使用的,包括其USB结构都是为了符合电视机直接操作的,同时是支持相应的游戏操作;但是自从乐视倒闭之后,价格从之前标价899降到了现在140+左

GRF-Sunomikp31 1万+

html5 mysql操作_js+html5操作sqlite数据库的方法_javascript技巧

本文实例讲述了js+html5操作sqlite数据库的方法。分享给大家供大家参考,具体如下://copyright by lanxyou lanxyou[at]gmail.comvar lanxDB=function(dbname){var db=openDatabase(dbname,'1.0.0','',65536);return{//返回数据库名getDBName:function(){re...

weixin_39930711的博客 272

Mac 环境配置jdk、Maven

3、终端打开配置jdk时候建好的脚本文件: open -e .bash_profile。4、查看maven是否安装成功和系统能不能识别maven/mvn命令:⬇️。输入⬇️并保存: 其中第一行JAVA_HOME替换为自己下的jdk路径。,安装编译好的二进制版本,具体安装zip还是tar.gz我看的。5、查看jdk是否安装成功和系统能不能识别java命令:⬇️。至此,我的Mac系统的环境配置jdk、Maven完成!然后就发现我的maven命令还是没作用,不识别,下载后直接安装即可,很快,点几下就OK了。

weixin_42416791的博客 4398

electronjs MySQL_Electron中使用sql.js操作SQLite数据库

一、关于sql.jssql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite C代码,将SQLite移植到Webassembly。 它使用存储在内存中的虚拟数据库文件,因此不会保留对数据库所做的更改。 但是,它允许您导入任何现有的sqlite文件,并将创建的数据库导出为JavaScript类型的数组。这里没有C绑定或node-g...

weixin_39769740的博客 561

31.XAPP1052乱序分析及处理

目录 1.XAPP1052乱序分析 2.XAPP1052乱序处理 2.1乱序处理方法选择 2.2 XAPP1052乱序处理代码详解 3.XAPP1052乱序处理后的波形分析 3.1发送引擎 3.2接收引擎 4.XAPP1052乱序处理后的带宽测试 5.下期内容 1.XAPP1052乱序分析 首先先给大家讲解下什么是PCIe的乱序。在PCIe系统中,乱序就是主机发送的TLP序列ID为1、2、3、4到从机,从机接收到的可能不是1、2、3、4。主机和从机如果都不解决乱序的问题,就会导致从机接

一个早起的程序员 1707

20.Labview使用子vi进行VI间的数据传递详解(模块化)

子VI(模块化)题主在题注中也提到, 子VI的建立只是为了减少程序的负担,那么我们当使用子VI的时候首先就要明确什么是子VI?什么样的程序可以作为子VI?首先我们来看NI官方给的定义,具体说明如下图所示:题主已经将重点画出来了,在官方的解释中将子VI定义为了模块化,大家可以看到创建模块化子VI的特点在于减少代码重复工作优化了程序的框架结构。把一个代码打包,需要的时候就拎出来让他处理处理,不需要的时候就让它躺在我的列表里就行了也不占用运行空间。那么创建子VI需要需要注意以下几点:①任何一个程序。

关注我,更多技术问题欢迎私聊~ 3516

html5 js 访问 sqlite 数据库的操作类

webkit 核心的浏览器提供了 3个 api接口,用于访问本地sqlite数据,但使用起来很不方便 故而做这个js封装,以方便使用 参考文章: sqlite API 说明   http://www.mhtml5.com/resources/html5-js-api%E6%95%99%E7%A8%8B%EF%BC%88%E4%B8%89%EF%BC%89-%E6%9C%AC%E5%

肖武的专栏 2万+

《SAP FICO系统配置从入门到精通共40篇》030、集成配置:FI与生产计划(PP)的自动科目确定

FI和PP的自动科目确定,本质上是把生产业务翻译成会计语言。翻译规则就藏在那些配置表里。配的时候多想一步:这个业务动作,在财务眼里是什么?是材料消耗?是产出入库?还是工费分摊?想清楚这个,再看配置界面,那些代码就不是天书了。最好的测试方式,是月底关账前,让生产部门跑一遍所有类型的生产订单。配置对不对,业务最知道。

985大学毕业,前某大厂员工,啥都会点的程序员! 574

【Vue.js使用SQL.js操作SQLite数据库】

Vue.js使用SQL.js操作SQLite数据库 - 哔哩哔哩

u012632105的博客 3770

UG二次开发GRIP创建drill工序

UG二次开发GRIP创建drill工序

qq285503851的博客 1696

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

js 直接操作sqlite数据库demo

朋友问我浏览器js直接sqlite怎么做。。。? 我一脸的懵逼。。。啥是sqlite。。。。? 然后各种查资料。。。终于有了这个demo。。。。 记录下,后面可能用的到。。。。。 &lt;html lang="en" dir="ltr"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta content=&qu

lookbbs的专栏 1万+

SAP B1中文培訓教材_SDK

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

html5 js连接数据库操作,js+html5操作sqlite数据库的方法

js+html5操作sqlite数据库的方法2020-03-24 16:01:36字体:大 中 小来源:转载供稿:网友本文实例讲述了js+html5操作sqlite数据库的方法。分享给大家供大家参考,具体如下://copyright by lanxyou lanxyou[at]gmail.comvar lanxDB=function(dbname){ var db=openDatabase(dbn...

weixin_42466723的博客 1760

android 蓝牙通讯demo

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Electron中使用sql.js操作SQLite数据库

推荐sql.js——一款纯js的sqlite工具。 一、关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite C代码,将SQLite移植到Webassembly。 它使用存储在内存中的虚拟数据库文件,因此不会保留对数据库所做的更改。 但是,它允许您导入任何现有的sqlite文件,并将创建的数据库导出为JavaScript类型的数组。 这里没有C绑定或node-gyp编译,sql.js是一个简单的Jav...

ElegantHedgehog的博客 2287

better-sqlite3 终极指南:Node.js 中最快的 SQLite 数据库操作库

在 Node.js 生态系统中,数据库操作一直是开发者的重要关注点。better-sqlite3 作为当前最快的 SQLite3 库,为开发者提供了同步 API、完整事务支持和卓越的性能表现。本文将深入解析这个强大的数据库工具,帮助你快速掌握其核心功能和使用技巧。 ## 项目核心价值与特色亮点 better-sqlite3 不仅仅是另一个 SQLite 包装器,它通过独特的设计理念重新定义了

gitblog_00947的博客 493
上一篇: MFC+GDI简化坐标缩放
下一篇: Direct2D+MFC学习笔记
洗洗睡去
博客等级 码龄19年 277粉丝 90原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值