前言
SQLite 是一个轻量级数据库,它的文件大小通常在几十兆以内,可以在多个平台上运行。性能也非常好,适合作为一些小型项目的数据库。@ycanince/sqlite3 是一个 Node.js 自带的 SQLite3 驱动,可以方便地操作 SQLite 数据库,本教程将详细介绍它的使用。
安装
使用 @ycanince/sqlite3 之前,需要先安装 Node.js。安装过程非常简单,在官网下载对应操作系统的安装包,然后安装即可。
安装 Node.js 后,就可以通过 npm 进行安装 @ycanince/sqlite3 了。在命令行中输入以下命令进行安装:
npm install @ycanince/sqlite3
连接数据库
在使用 @ycanince/sqlite3 之前,需要先进行数据库连接。使用 SQLite3 可以连接本地文件、内存数据库等多种方式,这里我们以本地文件为例进行介绍。
首先需要创建一个数据库文件,可以通过命令行中执行 sqlite3 命令来创建:
sqlite3 test.db
运行成功后,可以在当前目录下看到一个名为 test.db 的文件,这就是新建的数据库文件。
接下来,在 Node.js 中连接该数据库文件:
const sqlite3 = require('@ycanince/sqlite3').verbose(); const db = new sqlite3.Database('./test.db', sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error(err.message); } console.log('Connected to the test database.'); });
这里使用 verbose() 方法返回一个更加详细的 sqlite3 对象,然后调用 Database() 方法连接数据库,第一个参数是要连接的数据库文件,第二个参数是打开的模式,这里使用 OPEN_READWRITE,表示读写模式。如果连接成功,会打印 Connected to the test database.。
执行 SQL 语句
连接成功后就可以执行 SQL 语句了。@ycanince/sqlite3 提供了三种执行 SQL 语句的方法:run(), get() 和 all()。
run() 方法执行一条 SQL 语句,不需要返回值:
db.run('CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)');
这里创建了一个名为 test 的表,包含两个字段 id 和 name。
get() 方法执行一条 Select SQL 语句,只返回一行结果:
db.get('SELECT * FROM test WHERE id = ?', [1], (err, row) => { if (err) { console.error(err.message); } console.log(row); });
这里查询了表 test 中 id 为 1 的记录,如果查询成功,会将结果打印在控制台中。
all() 方法执行一条 Select SQL 语句,返回所有查询结果:
db.all('SELECT * FROM test', [], (err, rows) => { if (err) { console.error(err.message); } console.log(rows); });
这里查询了表 test 中的所有记录,如果查询成功,会将结果打印在控制台中。
事务处理
事务是指一系列的数据库操作,在事务处理中,所有的操作要么全部成功执行,要么全部不执行。@ycanince/sqlite3 支持事务处理,可以通过 transaction() 方法进行操作:
-- -------------------- ---- ------- --------------- -- - -- ------ ------------- -------------- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -- ---- ---------------- ----- -- - -- ----- - --------------------------- - ------------------------ ------------- --- ---
这里创建了一个包含两条插入记录的事务,如果全部执行成功,会打印 Transaction completed.。
示例代码
-- -------------------- ---- ------- ----- ------- - --------------------------------------- -- ------ ---- ------ ----- -- - --- ----------------------------- ----------------------- ----- -- - -- ----- - --------------------------- - ---------------------- -- --- ---- ------------ --- -- -- ---- - -------------- ----- -- --- ------ ---- --- ------- ------- ---- ---- -------- -- ---- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -- ---- -------------- - ---- ---- ----- -- - --- ---- ----- ---- -- - -- ----- - --------------------------- - ----------------- --- -------------- - ---- ------ --- ----- ----- -- - -- ----- - --------------------------- - ------------------ --- -- ------ --------------- -- - ------------- -------------- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -------------- ---- ---- ---- ----- ------ --- ---- --- --------- -- ---- ---------------- ----- -- - -- ----- - --------------------------- - ------------------------ ------------- --- --- -- ---- -------------- -- - -- ----- - --------------------------- - ------------------ --- -------- -------------- ---
总结
@ycanince/sqlite3 是一个非常实用的 Node.js 模块,可以轻松地操作 SQLite 数据库。如果您需要在 Node.js 中使用 SQLite 数据库,它将是您不错的选择。在使用中,要注意异常处理和事务处理,这样才能更加有效地使用 SQLite 数据库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067357890c4f7277583da5