Nodejs 连接Sqlite3数据库手摸手教程

2023-11-10 07:30

本文主要是介绍Nodejs 连接Sqlite3数据库手摸手教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Nodejs 连接Sqlite3数据库手摸手教程

  • 记录基于WIN10 x64环境下安装Nodejs 操作Sqlite3
    • 下载安装
    • 功能快捷键nodejs环境下安装Sqlite3接口驱动
    • 测试
    • 代码:
    • 测试结果
    • SQLite3 API介绍

记录基于WIN10 x64环境下安装Nodejs 操作Sqlite3

不基于服务器方式嵌入到本地运行的文件型数据库,本文选择**SQlite **用于嵌入开发。

下载安装

进入官网下载对应文件包
在这里插入图片描述
解压安装在本地,sqlite3.def和dll,exe放置在通一文件夹内
在这里插入图片描述
设置系统环境变量path中加入sqlite3.exe启动地址
在本文件夹内导航栏执行CMD命令 ,键入sqite3
在这里插入图片描述
那么恭喜你sqite3 数据库安装完成

功能快捷键nodejs环境下安装Sqlite3接口驱动

"sqlite3": "^5.0.0",
在cmd命令行对应文件目录执行
npm init -y
我用npm没有安装成功改用淘宝镜像
cnpm install sqlite3 --save安装命令

测试

新建一个表
用可视化工具链接本地数据库,如图所示构建数据库名称+表+字段

代码:

**const sqlite3 = require("sqlite3").verbose()
// sqlites数据库地址
let sqliteDbPath = "user.db"
// 打开sqlites数据库
var db = new sqlite3.Database(sqliteDbPath)
// all查询所有数据
console.time('time a');
db.all(`select * from user`, function(err, row) {if (err) throw errelse {console.log(' ①all查询结果 ', row)console.log('转换JSON',JSON.stringify(row));//all所有的内容转成 JSON内容}
})
console.timeEnd('time a');
// each逐条查询数据,每一段会单独打印
db.each("select * from user", function(err, row) {if (err) throw errelse {console.log(' ②each查询结果:', row)}
})// 按条件查询
db.each("select * from user where username=?", 'miao', function(err, row) {//user 表头 username 数据库字段if (err) throw errelse {console.log(' ③按条件查询 ', row)}
})
// // // 增加一条数据
// var sql_add = db.prepare(`insert into user (username, password, email) values('buding', '1111', '221@sdsd.com')`)
// sql_add.run()
// console.log(sql_add)
// // 删除数据
// var sql_del = db.prepare(`delete from user where username='buding'`)
// sql_del.run()
// // 修改一条数据
// var sql_modify = db.prepare(`update user set username='buding' where id=1`)
// sql_modify.run()**

测试结果

PS E:\myapp\sqlite> node test04.js
time a: 1.744ms①all查询结果  [{id: 2,username: 'zhangshan',password: '123456',email: '40277738@123.com'},{id: 1,username: 'miao',password: '123456',email: '40277738@123.com'}
]
转换JSON [{"id":2,"username":"zhangshan","password":"123456","email":"40277738@123.com"},{"id":1,"username":"miao","password":"123456","email":"40277738@123.com"}]②each查询结果: {id: 2,username: 'zhangshan',password: '123456',email: '40277738@123.com'
}②each查询结果: {id: 1,username: 'miao',password: '123456',email: '40277738@123.com'
}③按条件查询  {id: 1,username: 'miao',password: '123456',email: '40277738@123.com'
}

2条数据查询时间小于2ms,没有大规模测试,本文基于固态硬盘测试的结果。

SQLite3 API介绍

在nodejs的模块安装模块下,进入sqlite3/lib目录下,打开sqlite3.js文件查看,操作数据库主要是用Database,Database相关的函数有:run、prepare、each、get、all、exec、map和close。

Database

用法:new sqlite3.Database(filename,[mode],[callback])。
功能:返回数据库对象并且自动打开和连接数据库,它没有独立打开数据库的方法。
close

用法:close([callback])。
功能:关闭和释放数据库对象。
run

用法:run(sql,param,…],[callback])。
功能:运行指定参数的SQL语句,完成之后调用回调函数,它不返回任何数据,在回调函数里面有一个参数,SQL语句执行成功,则参数的值为null,反之为一个错误的对象,它返回的是数据库的操作对象。在这个回调函数里面当中的this,里面包含有lastId(插入的ID)和change(操作影响的行数,如果执行SQL语句失败,则change的值永远为0)。
get

用法:get(sql,[param,…],[callback])。
功能:运行指定参数的SQL语句,完成过后调用回调函数。如果执行成功,则回调函数中的第一个参数为null,第二个参数为结果集中的第一行数据,反之则回调函数中只有一个参数,只参数为一个错误的对象。
all

用法:all(sql,[param,…],[callback])。
功能:运行指定参数的SQL语句,完成过后调用回调函数。如果执行成功,则回调函数中的第一个参数为null,第二个参数为查询的结果集,反之,则只有一个参数,且参数的值为一个错误的对象。
prepare

用法:prepare(sql,[param,…],[callback])。
功能:预执行绑定指定参数的SQL语句,返回一个Statement对象,如果执行成功,则回调函数的第一个参数为null,反之为一个错误的对象。
在这里插入图片描述

这篇关于Nodejs 连接Sqlite3数据库手摸手教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381235

相关文章

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本