データベース接続:
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.all
db.query
db.all
db.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 のライブラリを使用してsqlite3
SQLite データベースを操作する場合、ライブラリはデフォルトではメソッドを提供しませんquery()
。したがって、sqlite データベースの場合は、通常、すべてで十分です