阅读量:0
在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, [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查询后的回调函数,具有err
和row
参数。
代码示例:
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查询后的回调函数,具有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原型定义和相应的代码示例,我们可以更加灵活地进行数据库的增删改查操作。