【Node.js操作SQLite指南】

Node.js操作SQLite指南

在本篇博客中,我们将学习如何在Node.js中操作SQLite数据库。我们将使用sqlite3模块来创建数据库、创建表以及进行数据的增删改查操作。

文章目录

  • Node.js操作SQLite指南
    • 安装sqlite3模块
    • 创建数据库
    • 创建表
    • 数据的增删改查
      • 插入数据
      • 查询数据
      • 更新数据
      • 删除数据
    • 关闭数据库连接

安装sqlite3模块

首先,我们需要安装sqlite3模块。在终端中运行以下命令来安装sqlite3模块:

npm install sqlite3

创建数据库

使用sqlite3模块创建一个数据库连接,并创建一个数据库文件。以下是示例代码:

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

// 创建数据库连接
const db = new sqlite3.Database('mydatabase.db');

创建表

使用SQL语句在数据库中创建表。以下是示例代码:

// 创建表
db.run(`CREATE TABLE IF NOT EXISTS users (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT,
  age INTEGER
)`);

数据的增删改查

使用SQL语句执行数据的增删改查操作。以下是一些示例代码:

插入数据

// 插入数据
db.run(`INSERT INTO users (name, age) VALUES ('John Doe', 25)`);

查询数据

// 查询数据
db.all(`SELECT * FROM users`, (err, rows) => {
  if (err) {
    console.error(err);
  } else {
    console.log(rows);
  }
});

更新数据

// 更新数据
db.run(`UPDATE users SET age = 30 WHERE name = 'John Doe'`);

删除数据

// 删除数据
db.run(`DELETE FROM users WHERE name = 'John Doe'`);

关闭数据库连接

在完成数据库操作后,记得关闭数据库连接。以下是示例代码:

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

请注意,上述代码只是一个简单的示例,可以根据实际需求进行更复杂的操作。同时,还可以使用参数化查询来防止SQL注入攻击。

希望本篇博客对有所帮助!如果有任何疑问,请随时提问。
以下是一个封装了SQLite3的Node.js类,用于实现数据在表中的增删改操作:

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

class SQLiteDB {
  constructor(databaseName) {
    this.db = new sqlite3.Database(databaseName);
  }

  createTable(tableName, columns) {
    const columnDefinitions = columns.map(column => `${column.name} ${column.type}`).join(', ');
    const query = `CREATE TABLE IF NOT EXISTS ${tableName} (${columnDefinitions})`;
    this.db.run(query);
  }

  insertData(tableName, data) {
    const columns = Object.keys(data).join(', ');
    const placeholders = Object.keys(data).map(() => '?').join(', ');
    const values = Object.values(data);
    const query = `INSERT INTO ${tableName} (${columns}) VALUES (${placeholders})`;
    this.db.run(query, values);
  }

  updateData(tableName, data, condition) {
    const setClause = Object.keys(data).map(column => `${column} = ?`).join(', ');
    const values = Object.values(data);
    const query = `UPDATE ${tableName} SET ${setClause} WHERE ${condition}`;
    this.db.run(query, values);
  }

  deleteData(tableName, condition) {
    const query = `DELETE FROM ${tableName} WHERE ${condition}`;
    this.db.run(query);
  }

  closeConnection() {
    this.db.close();
  }
}

module.exports = SQLiteDB;

使用上述类,可以轻松地执行SQLite数据库的增删改操作。以下是一个示例代码:

const SQLiteDB = require('./SQLiteDB');

// 创建数据库连接
const db = new SQLiteDB('mydatabase.db');

// 创建表
const columns = [
  { name: 'id', type: 'INTEGER PRIMARY KEY AUTOINCREMENT' },
  { name: 'name', type: 'TEXT' },
  { name: 'age', type: 'INTEGER' }
];
db.createTable('users', columns);

// 插入数据
const data = { name: 'John Doe', age: 25 };
db.insertData('users', data);

// 更新数据
const newData = { age: 30 };
const condition = 'name = "John Doe"';
db.updateData('users', newData, condition);

// 删除数据
const deleteCondition = 'age > 30';
db.deleteData('users', deleteCondition);

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

在上述示例代码中,我们首先引入了SQLiteDB类,并创建了一个数据库连接。然后,我们使用createTable方法创建了一个名为users的表。接下来,我们使用insertData方法插入了一条数据。然后,我们使用updateData方法更新了数据。最后,我们使用deleteData方法删除了符合条件的数据。最后,我们使用closeConnection方法关闭了数据库连接。

请注意,需要将mydatabase.db替换为实际的数据库文件名。另外,根据需求,可以根据表的结构和数据来调整示例代码中的参数。

希望这个封装的类对有所帮助!如果有任何疑问,请随时提问。

你可能感兴趣的:(node.js,sqlite,数据库)