您现在的位置是:首页 >其他 >nodejs中数据库的连接及操作网站首页其他
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.all
或 db.query
更加合适。当查询结果有多条数据时,我们可以使用 db.all
或 db.query
方法来获取所有的数据行。
所以对于数据库的操作的三个方式 区别都不大
除了 db.all
、db.get
和 db.query
这三个方法以外,SQLite 数据库 API 中还有其他的查询方式,例如:
-
db.each
:db.each
方法用于执行一个 SQL 查询语句,并为查询结果的每一行数据都执行一次回调函数。该方法需要两个参数:第一个参数是要执行的 SQL 查询语句;第二个参数是回调函数,它接收两个参数:第一个参数是错误对象(如果执行查询出错则显示该对象中包含错误信息);第二个参数是返回的每一行数据。该方法适合于需要对每一行数据进行特定处理的场景。 -
db.run
:db.run
方法用于执行一个 SQL 命令(比如 CREATE TABLE、INSERT 等命令)。与db.all
、db.get
和db.query
不同的是,该方法不返回任何查询结果,而是直接执行给定的 SQL 命令,并在执行完之后调用回调函数(如果有的话)。
下面是使用 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的数据库我们一般用all就够用了