飞不高 发表于 2024-9-8 18:42:51

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

在Node.js中,sqlite3是一个广受欢迎的轻量级数据库库,它提供了一个简便的API来与SQLite数据库举行交互。本文将深入解析sqlite3库中的db.run、db.get和db.all方法,包罗它们的API原型界说和相应的代码示例。
一、sqlite3简介
sqlite3是一个为Node.js提供的SQLite3数据库的绑定。SQLite是一个轻量级的数据库,它不需要单独的服务器进程或操纵系统,数据库就是一个或多个磁盘文件的集合。因此,它非常适合需要轻量级数据库解决方案的应用程序。
二、db.run方法
db.run方法用于实行SQL语句,它不返回查询结果,只返回操纵的影响行数。这通常用于实行INSERT、UPDATE、DELETE等不返回结果的SQL语句。
API原型界说:
db.run(sql, , )


[*]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, , )


[*]sql:要实行的SQL查询语句。
[*]param:(可选)SQL查询语句中的参数,用于更换查询语句中的占位符。
[*]callback:(可选)实行完SQL查询后的回调函数,具有err和row参数。
代码示例:
db.serialize(() => {
db.get("SELECT info FROM lorem WHERE id = ?", , (err, row) => {
    if (err) {
      return console.error(err.message);
    }
    console.log(row); // 输出查询到的第一行数据
});
});
四、db.all方法
db.all方法用于实行SQL查询,并返回查询结果的全部行。假如查询结果为空,则返回一个空数组。
API原型界说:
db.all(sql, , )


[*]sql:要实行的SQL查询语句。
[*]param:(可选)SQL查询语句中的参数,用于更换查询语句中的占位符。
[*]callback:(可选)实行完SQL查询后的回调函数,具有err和rows参数。
代码示例:
db.all("SELECT * FROM lorem", [], (err, rows) => {
if (err) {
    throw err;
}
rows.forEach((row) => {
    console.log(row); // 输出查询到的每一行数据
});
});
五、总结
在Node.js中利用sqlite3库可以方便地举行数据库操纵。db.run、db.get和db.all方法分别用于实行不返回结果的SQL语句、查询并返回第一行数据和查询并返回全部行数据。通过相识这些方法的API原型界说和相应的代码示例,我们可以更加灵活地举行数据库的增删改查操纵。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Node.js中sqlite3的db.run、db.get和db.all方法深入解析