您现在的位置是:首页 >其他 >nodejs中数据库的连接及操作网站首页其他

nodejs中数据库的连接及操作

conquer_galaxy 2023-07-02 20:00:02
简介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();

在上面的示例代码中,我们通过执行 SELECT * FROM users WHERE id = ? 来查询 id 为 1 的用户数据,并将这个查询放到 db.get 方法中去执行。由于我们只需要查询一条数据,所以使用 db.get 方法比使用 db.alldb.query 更加合适。当查询结果有多条数据时,我们可以使用 db.alldb.query 方法来获取所有的数据行。

所以对于数据库的操作的三个方式  区别都不大 

除了 db.alldb.getdb.query 这三个方法以外,SQLite 数据库 API 中还有其他的查询方式,例如:

  • db.each: db.each 方法用于执行一个 SQL 查询语句,并为查询结果的每一行数据都执行一次回调函数。该方法需要两个参数:第一个参数是要执行的 SQL 查询语句;第二个参数是回调函数,它接收两个参数:第一个参数是错误对象(如果执行查询出错则显示该对象中包含错误信息);第二个参数是返回的每一行数据。该方法适合于需要对每一行数据进行特定处理的场景。

  • db.run: db.run 方法用于执行一个 SQL 命令(比如 CREATE TABLE、INSERT 等命令)。与 db.alldb.getdb.query 不同的是,该方法不返回任何查询结果,而是直接执行给定的 SQL 命令,并在执行完之后调用回调函数(如果有的话)

下面是使用 db.eachdb.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的数据库我们一般用all就够用了  

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。