nodejsでのデータベースの接続と操作

データベース接続:
 

mysql データベース接続の場合:
 

const mysql = require("mysql")

const db = mysql.createPool({
    host: "127.0.0.1",
    user: 'root',
    password: "123456",
    database: "my_db_01"
})
//用db进行操作的

module.exports = db

SQLite データベースの場合:
 

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('mydatabase.db');
module.exports = db

データベース操作:


以下は、このメソッドを使用してdb.allデータをクエリするサンプル コードです。

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('mydatabase.db');

// 查询所有的用户数据
db.all('SELECT * FROM users', (err, rows) => {
  if (err) {
    throw err;
  }
  rows.forEach((row) => {
    console.log(row);
  });
});

db.close();

以下は、このメソッドを使用してdb.queryデータをクエリするサンプル コードです。

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('mydatabase.db');

// 查询 id 为 1 的用户数据
db.query('SELECT * FROM users WHERE id = ?', [1], (err, row) => {
  if (err) {
    throw err;
  }
  console.log(row);
});

db.close();

以下は、このメソッドを使用してdb.getデータをクエリするサンプル コードです。

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('mydatabase.db');

// 查询 id 为 1 的用户数据
db.get('SELECT * FROM users WHERE id = ?', [1], (err, row) => {
  if (err) {
    throw err;
  }
  console.log(row);
});

db.close();

上記のサンプルコードでは、を実行してユーザーデータを1でSELECT * FROM users WHERE id = ?クエリしid、このクエリをdb.getメソッドに入れて実行しています。1 つのデータのみをクエリする必要があるため、またはdb.getよりも メソッドを使用する方が適切です。クエリ結果に複数のデータがある場合、orメソッドを使用してすべてのデータ行を取得できます。db.alldb.querydb.alldb.query

したがって、3 つのデータベース操作方法には大きな違いはありません。 

SQLite データベース API にはdb.all、 、 、 の 3 つのメソッドに加えてdb.get、次のような他のクエリ メソッドもあります。db.query

  • db.each:db.eachこのメソッドは、SQL クエリ ステートメントを実行し、クエリ結果のデータ行ごとにコールバック関数を実行するために使用されます。このメソッドには 2 つのパラメータが必要です: 最初のパラメータは実行される SQL クエリ ステートメント、2 番目のパラメータは 2 つのパラメータを受け取るコールバック関数です: 最初のパラメータはエラー オブジェクトです (実行クエリが失敗した場合は、次の内容が表示されます)エラー情報); 2 番目のパラメーターは、返されたデータの各行です。この方法は、データの各行に特定の処理が必要なシナリオに適しています。

  • db.run:db.runこのメソッドは、SQL コマンド (CREATE TABLE、INSERT など) を実行するために使用されます。db.allやとは異なりこのメソッドはクエリ結果を返しませんが、指定された SQL コマンドを直接実行し、実行後にコールバック関数 (存在する場合) を呼び出しdb.getますdb.query

db.eachおよびメソッドを使用したサンプル コードを次に示しますdb.run

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('mydatabase.db');

// 使用 db.each 查询 users 表中的所有数据,并依次打印每一行数据
db.each('SELECT * FROM users', (err, row) => {
  if (err) {
    throw err;
  }
  console.log(row);
});

// 使用 db.run 执行一条 SQL 命令来插入一条新的用户数据
db.run('INSERT INTO users(name, age) VALUES (?, ?)', ['Alice', 20], function (err) {
  if (err) {
    throw err;
  }
  console.log(`A new row has been inserted with id ${this.lastID}`);
});

db.close();

Node.js のライブラリを使用してsqlite3SQLite データベースを操作する場合、ライブラリはデフォルトではメソッドを提供しませんquery()したがって、sqlite データベースの場合は、通常、すべてで十分です  

おすすめ

転載: blog.csdn.net/conquer_galaxy/article/details/130454940