当前位置: 首页 > article >正文

Node.js中sqlite3的db.run、db.get和db.all方法深入解析

在Node.js中,sqlite3是一个广受欢迎的轻量级数据库库,它提供了一个简洁的API来与SQLite数据库进行交互。本文将深入解析sqlite3库中的db.rundb.getdb.all方法,包括它们的API原型定义和相应的代码示例。

一、sqlite3简介

sqlite3是一个为Node.js提供的SQLite3数据库的绑定。SQLite是一个轻量级的数据库,它不需要单独的服务器进程或操作系统,数据库就是一个或多个磁盘文件的集合。因此,它非常适合需要轻量级数据库解决方案的应用程序。

二、db.run方法

db.run方法用于执行SQL语句,它不返回查询结果,只返回操作的影响行数。这通常用于执行INSERT、UPDATE、DELETE等不返回结果的SQL语句。

API原型定义

db.run(sql, [param, ...], [callback])
  • sql:要执行的SQL语句。
  • param:(可选)SQL语句中的参数,用于替换SQL语句中的占位符。
  • callback:(可选)执行完SQL语句后的回调函数,具有err参数。

代码示例

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(':memory:'); // 创建一个内存中的数据库

db.serialize(() => {
  db.run("CREATE TABLE lorem (info TEXT)", (err) => {
    if (err) console.error(err.message);
    console.log('Table created.');
  });

  const stmt = "INSERT INTO lorem VALUES (?)";
  db.run(stmt, ['Ipsum'], function(err) {
    if (err) {
      return console.log(err.message);
    }
    // 输出插入的行数
    console.log(`Row(s) inserted with rowid ${this.lastID}`);
  });
});

db.close((err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Close the database connection.');
});

三、db.get方法

db.get方法用于执行SQL查询,并返回查询结果的第一行。如果查询结果为空,则返回null。

API原型定义

db.get(sql, [param, ...], [callback])
  • sql:要执行的SQL查询语句。
  • param:(可选)SQL查询语句中的参数,用于替换查询语句中的占位符。
  • callback:(可选)执行完SQL查询后的回调函数,具有errrow参数。

代码示例

db.serialize(() => {
  db.get("SELECT info FROM lorem WHERE id = ?", [1], (err, row) => {
    if (err) {
      return console.error(err.message);
    }
    console.log(row); // 输出查询到的第一行数据
  });
});

四、db.all方法

db.all方法用于执行SQL查询,并返回查询结果的所有行。如果查询结果为空,则返回一个空数组。

API原型定义

db.all(sql, [param, ...], [callback])
  • sql:要执行的SQL查询语句。
  • param:(可选)SQL查询语句中的参数,用于替换查询语句中的占位符。
  • callback:(可选)执行完SQL查询后的回调函数,具有errrows参数。

代码示例

db.all("SELECT * FROM lorem", [], (err, rows) => {
  if (err) {
    throw err;
  }
  rows.forEach((row) => {
    console.log(row); // 输出查询到的每一行数据
  });
});

五、总结

在Node.js中使用sqlite3库可以方便地进行数据库操作。db.rundb.getdb.all方法分别用于执行不返回结果的SQL语句、查询并返回第一行数据和查询并返回所有行数据。通过了解这些方法的API原型定义和相应的代码示例,我们可以更加灵活地进行数据库的增删改查操作。


http://www.kler.cn/a/287549.html

相关文章:

  • 3步实现贪吃蛇
  • ARM 汇编指令
  • VMWare虚拟机安装华为欧拉系统
  • Essential Cell Biology--Fifth Edition--Chapter one (8)
  • 大数据如何助力干部选拔的公正性
  • 基于gradio+networkx库对图结构进行可视化展示
  • 区块链媒体套餐发稿:世媒讯引领项目推广新风潮
  • ARM体系结构
  • Linux——性能调优工具一览
  • c语言中的前向声明
  • 基于深度学习的游客满意度分析与评论分析【情感分析、主题分析】
  • 【java】类的多层继承
  • 四款经典的防泄密软件,企业防泄密必备软件
  • 计算机网络面试真题总结(七)
  • 算法训练营|图论第10天 Bellman_ford:优化算法,判断负权算法,单源有限最短路
  • Mysql——高可用集群部署
  • WHAT - 通过 react-use 源码学习 React(Lifecycles 篇)
  • ThinkPHP数据库链式操作之field
  • 如何从mssql里面导出程序集ASSEMBLY为dll
  • Django框架安全
  • Spring 事务传播和自调用行为
  • SPI驱动学习三(spidev的使用)
  • 数据结构——顺序表和单链表
  • 论文精读-ReMoNet: Recurrent Multi-Output Network for Efficient Video Denoising
  • 如何轻松合并 PDF 文件
  • 27. 如何统计集合中每个元素的出现次数?请使用Map和Stream API举例说明。