Node操作MySQL数据库实例详解
MySQL是常用的关系型数据库管理系统,而Node.js是基于事件驱动、非阻塞I/O的开发框架,它可以通过npm安装各种MySQL的模块包,来实现对MySQL数据库的操作。
安装MySQL模块
在使用Node.js对MySQL进行操作之前,需要先安装MySQL模块。以mysql模块为例,可以使用以下命令进行安装:
npm install mysql
连接MySQL数据库
在使用MySQL模块进行数据库操作之前,需要先建立与MySQL数据库的连接。可以使用以下代码实现:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
connection.connect((error) => {
if (error) {
console.error('Failed to connect to MySQL database: ', error);
} else {
console.log('Successfully connected to MySQL database');
}
});
上述代码中,首先使用require()函数引入了mysql模块,然后使用createConnection()方法创建了一个与MySQL数据库的连接。其中,配置项包括:主机名(host)、用户名(user)、密码(password)和数据库名(database)。接着调用connect()方法建立连接,如果连接失败,则输出错误信息。如果连接成功,则输出成功信息。
执行SQL查询
建立MySQL数据库连接之后,可以使用query()方法执行SQL查询,如:
connection.query('SELECT * FROM users', (error, results, fields) => {
if (error) throw error;
console.log('The solution is: ', results);
});
上述代码中,使用query()方法执行了一条SQL查询,其中参数1为要执行的SQL语句,参数2为回调函数。回调函数包括3个参数:错误信息(如果查询出错则输出该信息)、查询结果和字段信息。
示例说明
假设有一个test数据库,其中有一张users表,包含以下字段:
- id:用户ID号,INT类型,主键自增
- name:用户名,VARCHAR(50)类型
- age: 年龄,INT类型
示例1:插入数据
const user = {
name: 'John Smith',
age: 25
};
connection.query('INSERT INTO users SET ?', user, (error, results, fields) => {
if (error) throw error;
console.log('The inserted user ID is: ', results.insertId);
});
上述代码中,首先定义了一个user对象,包含了要插入到users表中的数据。其次使用INSERT INTO语句插入数据,并在回调函数中输出插入的用户ID号。
示例2:更新数据
connection.query('UPDATE users SET age = ? WHERE name = ?', [30, 'John Smith'], (error, results, fields) => {
if (error) throw error;
console.log('The affected rows are: ', results.affectedRows);
});
上述代码中,使用UPDATE语句更新了一条以name为条件的数据,将其age字段修改为30。在回调函数中输出被更新的行数。
关闭连接
使用完MySQL连接之后,需要使用end()方法关闭连接,如:
connection.end((error) => {
if (error) {
console.error('Failed to close MySQL database connection: ', error);
} else {
console.log('Successfully closed MySQL database connection');
}
});
上述代码中,调用end()方法关闭连接,并在回调函数中输出关闭连接的结果。
除了以上示例,Node.js还可以通过MySQL模块实现数据库的其他操作,如:删除记录、批量插入等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node操作mysql数据库实例详解 - Python技术站