本文说明:介绍如何使用NodeJS操作mysql数据库
需要准备:需要安装MySQL数据库、Node环境、数据库图形界面工具SQLyog、VSCode开发工具
安装包下载:https://www.aliyundrive.com/s/9hcTnhxxpot
# 创建数据库
CREATE DATABASE shopping;
# 创建数据表
CREATE TABLE shop(
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键
shopname VARCHAR(100), -- 店铺名称
mrgname VARCHAR(100), -- 店长名字
telphone VARCHAR(11), -- 联系电话
business VARCHAR(120) -- 主营业务
);
由于Node默认环境中并不包含mysql模块,需要在使用mysql之前先安装此模块
准备工作:在硬盘创建demo的目录,作为项目根目录
使用vscode打开demo此目录,在vscode中打开终端
输入下面命令:
npm install mysql
命令输入后,按下回车键,等待模块安装完成,如下所示
添加的mysql模块在项目node_modules 目录下(暂时不用关心这个目录)
接下来就可以进行编码了。在项目根目录下db.js文件。
代码书写在db.js文件中
// 引入http作为服务器
const http = require("http");
// 引入数据库
const mysql = require("mysql");
// 连接数据库
var connection = mysql.createConnection({
host : 'localhost', //服务器地址,连接本机可以使用localhost或者127.0.0.1
user : 'root', //连接数据库的用户名
password : '123', //连接数据库的密码
database : 'shopping', //数据库的名称
port : 3306 //数据库端口号,默认3306,可以省略不写
});
function addData( datas ) {
// 打开数据库连接
connection.connect();
// 执行简单的数据库插入操作
let sql = "insert into shop values( null , ? , ? , ? , ? )";
// 执行插入操作
connection.query(sql,datas,function (err, result) {
if(err){
console.log('插入失败',err.message);
return;
}
console.log('插入成功:',result);
});
// 释放数据库连接
connection.end();
}
addData(['秦臻米皮', '灭绝师太', '10086', '小吃']);
// 定义函数,封装修改数据库数据的方法,参数为需要修改的数据
function updateData(datas) {
// 打开数据库连接
connection.connect();
// 编写sql语句
var sql = 'update shop set shopname = ? , mrgname = ? , telphone = ? , business = ? WHERE Id = ?';
// 执行sql,并处理执行的结果
connection.query(sql,datas,function (err, result) {
if(err){
console.log('修改失败: ',err.message);
return;
}
console.log('修改成功,受影响的行数:',result.affectedRows);
});
// 释放数据库连接
connection.end();
}
updateData(['老碗面', '张无忌', '10010', '面食' , 2]);
温馨提示:删除必须传递删除条件,否则删除就是整张表的数据(此操作非常危险)
// 定义函数,封装删除数据,需要传入待删除数据的id
function deleteById( id ) {
// 打开数据库连接
connection.connect();
// 编写sql语句
var sql = 'delete from shop where id = ? ';
// 执行sql,并处理执行的结果
connection.query(sql, id , function (err, result) {
if(err){
console.log('删除失败:',err.message);
return;
}
console.log('删除成功,影响的行数:',result.affectedRows);
});
// 释放数据库连接
connection.end();
}
deleteById(1);
// 查询操作,封装函数,查询当前表的所有数据
function selectAll() {
// 打开数据库连接
connection.connect();
// 编写sql语句
let sql = "select * from shop";
// 执行sql,并处理执行的结果,查询的结果在results变量中,results其实是一个数组
connection.query(sql, function (error, results, fields) {
if (error)
throw error;
console.log('查询的结果:', results);
});
// 释放数据库连接
connection.end();
}
selectAll();
// 查询指定id的数据
function selectById(id) {
// 打开数据库连接
connection.connect();
// 编写sql语句
let sql = "select * from shop where id = ?";
// 执行sql,并处理执行的结果,查询的结果在results变量中,results其实是一个数组
connection.query(sql, id, function (error, results, fields) {
if (error)
throw error;
console.log('查询的结果:', results);
});
// 释放数据库连接
connection.end();
}
selectById(2);