一、前奏

本文说明:介绍如何使用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)	-- 主营业务
	
);

三、npm安装mysql模块

由于Node默认环境中并不包含mysql模块,需要在使用mysql之前先安装此模块
准备工作:在硬盘创建demo的目录,作为项目根目录
使用vscode打开demo此目录,在vscode中打开终端
在这里插入图片描述
输入下面命令:

npm install mysql

命令输入后,按下回车键,等待模块安装完成,如下所示
在这里插入图片描述
添加的mysql模块在项目node_modules 目录下(暂时不用关心这个目录)
在这里插入图片描述
接下来就可以进行编码了。在项目根目录下db.js文件。
在这里插入图片描述
代码书写在db.js文件中

四、引入msyql模块

// 引入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查询数据

// 查询指定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);
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐