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 = ?쿼리 하고 이 쿼리를 실행할 메서드에 넣습니다. 하나의 데이터만 쿼리하면 되므로 or 보다 메서드를 사용하는 것이 더 적합합니다 . 쿼리 결과에 여러 데이터가 있는 경우 or 메서드를 사용하여 모든 데이터 행을 가져올 수 있습니다.iddb.getdb.getdb.alldb.querydb.alldb.query

따라서 세 가지 데이터베이스 운영 방식에는 큰 차이가 없습니다. 

db.all, db.get및 의 세 가지 방법 외에도 db.querySQLite 데이터베이스 API에는 다음과 같은 다른 쿼리 방법이 있습니다.

  • db.each: db.each이 메서드는 SQL 쿼리문을 실행 하고 쿼리 결과의 각 데이터 행에 대한 콜백 함수를 실행하는 데 사용됩니다 . 이 메서드에는 두 개의 매개변수가 필요합니다: 첫 번째 매개변수는 실행할 SQL 쿼리 문이고, 두 번째 매개변수는 두 개의 매개변수를 받는 콜백 함수입니다. 오류 정보), 두 번째 매개변수는 반환된 데이터의 각 행입니다. 이 방법은 데이터의 각 행에 대해 특정 처리가 필요한 시나리오에 적합합니다.

  • db.run: db.runSQL 명령(예: CREATE TABLE, INSERT 등)을 실행하는 데 사용되는 메서드입니다. , db.all달리 쿼리 결과를 반환하지 않고 주어진 SQL 명령을 직접 실행하고 실행 후 콜백 함수(있는 경우)를 호출합니다 .db.getdb.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 데이터베이스의 경우 일반적으로 모두 사용하면 충분합니다.  

Supongo que te gusta

Origin blog.csdn.net/conquer_galaxy/article/details/130454940
Recomendado
Clasificación