微信登录

数据库连接 - SQLite 数据库 - 连接 SQLite

数据库连接 - SQLite 数据库 - 连接 SQLite

一、引言

在 Node.js 开发中,数据库是存储和管理数据的重要组成部分。SQLite 是一种轻量级的嵌入式数据库,它不需要单独的服务器进程,将整个数据库存储在一个单一的磁盘文件中。这使得它非常适合小型项目、嵌入式系统以及开发和测试环境。本文将详细介绍如何在 Node.js 中连接 SQLite 数据库,并通过示例代码演示基本的操作。

二、安装必要的模块

在 Node.js 中,我们可以使用 sqlite3 模块来连接和操作 SQLite 数据库。首先,确保你已经安装了 Node.js 和 npm(Node 包管理器),然后使用以下命令安装 sqlite3 模块:

  1. npm install sqlite3

三、连接到 SQLite 数据库

1. 基本连接示例

下面是一个简单的 Node.js 代码示例,展示了如何连接到一个 SQLite 数据库:

  1. const sqlite3 = require('sqlite3').verbose();
  2. // 打开数据库连接
  3. const db = new sqlite3.Database('example.db', (err) => {
  4. if (err) {
  5. console.error(err.message);
  6. }
  7. console.log('Connected to the example database.');
  8. });
  9. // 关闭数据库连接
  10. db.close((err) => {
  11. if (err) {
  12. console.error(err.message);
  13. }
  14. console.log('Closed the database connection.');
  15. });

代码解释

  • require('sqlite3').verbose():引入 sqlite3 模块并开启详细日志模式,方便调试。
  • new sqlite3.Database('example.db', callback):创建一个新的数据库实例并尝试打开名为 example.db 的数据库文件。如果文件不存在,将自动创建一个新的数据库文件。
  • db.close(callback):关闭数据库连接。

四、执行 SQL 语句

1. 创建表

下面的示例展示了如何在 SQLite 数据库中创建一个名为 users 的表:

  1. const sqlite3 = require('sqlite3').verbose();
  2. const db = new sqlite3.Database('example.db', (err) => {
  3. if (err) {
  4. console.error(err.message);
  5. }
  6. console.log('Connected to the example database.');
  7. // 创建表
  8. const sql = `CREATE TABLE IF NOT EXISTS users (
  9. id INTEGER PRIMARY KEY AUTOINCREMENT,
  10. name TEXT NOT NULL,
  11. age INTEGER
  12. )`;
  13. db.run(sql, (err) => {
  14. if (err) {
  15. console.error(err.message);
  16. }
  17. console.log('Table created successfully.');
  18. });
  19. // 关闭数据库连接
  20. db.close((err) => {
  21. if (err) {
  22. console.error(err.message);
  23. }
  24. console.log('Closed the database connection.');
  25. });
  26. });

2. 插入数据

接下来,我们向 users 表中插入一条数据:

  1. const sqlite3 = require('sqlite3').verbose();
  2. const db = new sqlite3.Database('example.db', (err) => {
  3. if (err) {
  4. console.error(err.message);
  5. }
  6. console.log('Connected to the example database.');
  7. // 插入数据
  8. const sql = `INSERT INTO users (name, age) VALUES (?,?)`;
  9. const values = ['John Doe', 30];
  10. db.run(sql, values, function (err) {
  11. if (err) {
  12. console.error(err.message);
  13. }
  14. console.log(`A row has been inserted with rowid ${this.lastID}`);
  15. });
  16. // 关闭数据库连接
  17. db.close((err) => {
  18. if (err) {
  19. console.error(err.message);
  20. }
  21. console.log('Closed the database connection.');
  22. });
  23. });

3. 查询数据

最后,我们查询 users 表中的所有数据:

  1. const sqlite3 = require('sqlite3').verbose();
  2. const db = new sqlite3.Database('example.db', (err) => {
  3. if (err) {
  4. console.error(err.message);
  5. }
  6. console.log('Connected to the example database.');
  7. // 查询数据
  8. const sql = `SELECT * FROM users`;
  9. db.all(sql, [], (err, rows) => {
  10. if (err) {
  11. console.error(err.message);
  12. }
  13. rows.forEach((row) => {
  14. console.log(row);
  15. });
  16. });
  17. // 关闭数据库连接
  18. db.close((err) => {
  19. if (err) {
  20. console.error(err.message);
  21. }
  22. console.log('Closed the database connection.');
  23. });
  24. });

五、总结

操作 代码示例 说明
连接数据库 const db = new sqlite3.Database('example.db', callback) 打开或创建一个 SQLite 数据库文件
创建表 db.run(sql, callback) 执行 SQL 语句创建表
插入数据 db.run(sql, values, callback) 执行 SQL 插入语句,values 为参数数组
查询数据 db.all(sql, values, callback) 执行 SQL 查询语句,返回所有匹配的记录
关闭连接 db.close(callback) 关闭数据库连接

通过以上步骤,你可以在 Node.js 中轻松地连接和操作 SQLite 数据库。SQLite 的轻量级特性和简单易用的接口使其成为 Node.js 开发中的一个优秀选择。希望本文对你有所帮助!