Nodejs SQLite数据库操作插件node-sqlite3的使用

Nodejs SQLite数据库操作插件node-sqlite3的使用
node-sqlite3 是一个用于 Node.js 的 SQLite 数据库操作插件。下面是一个简单的示例,展示如何安装、配置和使用 node-sqlite3

1. 安装

首先,你需要在你的项目中安装 sqlite3 包。你可以通过 npm(Node 包管理器)来安装它:

npm install sqlite3

2. 基本使用

创建数据库和表

const sqlite3 = require('sqlite3').verbose();

// 打开一个数据库文件,如果不存在则创建
let db = new sqlite3.Database(':memory:', (err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connected to the in-memory SQlite database.');
});

// 创建一个表
db.serialize(() => {
    db.run("CREATE TABLE lorem (info TEXT)");

    // 插入多行数据
    const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
    for (let i = 0; i < 10; i++) {
        stmt.run("Ipsum " + i);
    }
    stmt.finalize();

    // 查询数据
    db.each("SELECT rowid AS id, info FROM lorem", (err, row) => {
        if (err) {
            console.error(err.message);
        }
        console.log(row.id + ": " + row.info);
    });
});

// 关闭数据库连接
db.close();

这段代码做了以下几件事:

  • 连接到一个内存中的 SQLite 数据库。
  • 创建了一个名为 lorem 的表。
  • 向该表中插入了 10 条记录。
  • 查询并打印出所有记录。

3. 更多功能

参数化查询

使用参数化查询可以避免 SQL 注入攻击,并提高性能:

db.get("SELECT rowid AS id, info FROM lorem WHERE rowid = ?", [5], (err, row) => {
    if (err) {
        console.error(err.message);
    }
    console.log(row.id + ": " + row.info);
});

事务处理

db.run("BEGIN TRANSACTION");
db.run("UPDATE lorem SET info = 'Updated Info' WHERE rowid = 1");
db.run("COMMIT");

4. 错误处理

始终检查错误以确保数据库操作成功:

db.run("INSERT INTO lorem VALUES (?)", ["Test"], function(err) {
    if (err) {
        return console.error(err.message);
    }
    console.log(`A row has been inserted with rowid ${this.lastID}`);
});

以上就是 node-sqlite3 的基本使用方法。希望这对你有所帮助!


3 回复

当然!node-sqlite3 是一个非常流行的 Node.js 模块,用于与 SQLite 数据库进行交互。首先,你需要安装它:

npm install sqlite3

接下来,你可以开始编写一些基本的代码来操作数据库。这里有一个简单的例子,展示如何创建数据库、表,插入数据以及查询数据:

const sqlite3 = require('sqlite3').verbose();

let db = new sqlite3.Database(':memory:', (err) => {
    if (err) {
        return console.error(err.message);
    }
    console.log('Connected to the in-memory SQlite database.');
});

// 创建表
db.run(`CREATE TABLE lorem (info TEXT)`);

// 插入数据
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (let i = 0; i < 10; i++) {
    stmt.run("Ipsum " + i);
}
stmt.finalize();

// 查询数据
db.all("SELECT rowid AS id, info FROM lorem", [], (err, rows) => {
    if (err) {
        throw err;
    }
    rows.forEach((row) => {
        console.log(row.id + ": " + row.info);
    });
});

// 关闭数据库连接
db.close();

这段代码首先连接到一个内存中的 SQLite 数据库,然后创建了一个名为 lorem 的表,向其中插入了 10 条记录,并最后查询并打印了所有记录。希望这能帮到你!


node-sqlite3 是一个用于 Node.js 的 SQLite 数据库驱动,可以让你方便地进行数据库的增删改查操作。下面是一些基本的使用方法和示例代码。

安装

首先,你需要安装 sqlite3 模块:

npm install sqlite3

连接数据库

你可以通过以下代码连接到 SQLite 数据库。如果数据库文件不存在,它将自动创建一个新的数据库文件。

const sqlite3 = require('sqlite3').verbose();

// 打开数据库
let db = new sqlite3.Database('./mydb.sqlite', (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the mydb database.');
});

创建表

接下来,我们可以创建一个表来存储数据。

db.run(`CREATE TABLE IF NOT EXISTS employees (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  position TEXT NOT NULL,
  office TEXT NOT NULL
)`, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Table created.');
});

插入数据

插入数据也非常简单:

db.run(`INSERT INTO employees (name, position, office) VALUES (?, ?, ?)`, ['John Doe', 'Software Engineer', 'New York'], function(err) {
  if (err) {
    return console.error(err.message);
  }
  console.log(`A row has been inserted with rowid ${this.lastID}`);
});

查询数据

查询数据可以通过 allget 方法实现:

db.all(`SELECT * FROM employees WHERE office = ?`, ['New York'], (err, rows) => {
  if (err) {
    throw err;
  }
  rows.forEach((row) => {
    console.log(row.id + ": " + row.name + ", " + row.position + ", " + row.office);
  });
});

更新数据

更新数据同样简单:

db.run(`UPDATE employees SET position = ? WHERE name = ?`, ['Senior Software Engineer', 'John Doe'], function(err) {
  if (err) {
    throw err;
  }
  console.log(`Rows updated: ${this.changes}`);
});

删除数据

最后,删除数据:

db.run(`DELETE FROM employees WHERE name = ?`, ['John Doe'], function(err) {
  if (err) {
    throw err;
  }
  console.log(`${this.changes} row(s) deleted`);
});

关闭数据库连接

完成所有数据库操作后,记得关闭数据库连接:

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

这些是使用 node-sqlite3 进行基本数据库操作的一些示例。你可以根据需要调整这些代码以满足你的具体需求。

node-sqlite3 是一个用于 Node.js 的 SQLite 数据库操作库。首先,通过npm安装:npm install sqlite3

基本使用步骤如下:

  1. 引入模块:var sqlite3 = require('sqlite3').verbose();
  2. 打开数据库:let db = new sqlite3.Database('./data.db');
  3. 执行SQL命令:db.run("CREATE TABLE IF NOT EXISTS demo (id INT, name TEXT)");
  4. 查询数据:db.all("SELECT * FROM demo", [], (err, rows) => { ... });
  5. 完成后关闭数据库连接:db.close();

此库支持事务、绑定参数等功能,可以满足大部分操作需求。

回到顶部