Node.js 操作MySQL数据库

news2025/1/17 3:15:00

         在讲Node.js中引入mysql模块之前先讲一下关于MySQL数据库,首先是关于MySQL数据库的安装和mysql服务以及对mysql命令和可视化工具的一个基本使用;那么在这里已经准备好了关于MySQL数据库的内容了:


MySQL 数据库安装详细 :  MySQL数据库安装超级详细教程

MySQL 数据库常用命令:   MySQL数据库 —— 常用语句

MySQL 数据库可视化工具安装以及使用:      1. SQLyog        2. Navicat for MySQL 


        在Node.js中,模块mysql是实现MySQL协议的JavaScript客户端,Node.js程序通过与MySQL数据之间建立连接,通过该模块可执行数据的增删改查,那么在使用之前先来引入mysql模块:

引入mysql模块

引入之前先通过 npm包管理器 下载mysql模块;

npm install mysql;

引入mysql模块;

const mysql = require('mysql');

创建数据库连接

createConnection( ) —— 创建连接对象

        通过 createConnection( ) 方法建立与指定服务器上的数据库进行连接的对象;需要设置如下的一些参数:主要还是这四个host ,user ,password ,database ;

属性

含义

host

连接数据库服务器名(默认为localhost)

user

MySql服务器连接用户名

password

MySql服务器登录密码

database

要连接的数据库

port

连接端口号(默认为3306)

charset

连接使用的字符编码(默认UTF8_GENERAL_CI)

timezone

连接使用的时区(默认local)

  connect( ) —— 连接数据库

属性功能

connect()

连接数据库
 

query(sqlString,  [values, ] callback)

 

对数据库中数据进行操作(增删改查)

 

--sqlString-要执行的SQL语句

 

--values-{Array},可选参数,应用到查询占位符的值

 

--callback-回调函数 function  (error, result, fields) {}

end()在确保当前正在处理的SQL语句正常完成后断开连接

destroy()

立即结束连接,不管当前是否正在执行任务

属性

含义

threadId

当前连接线程Id

数据库服务开启:

数据库用户密码以及数据库准备:

 编写代码:

const mysql = require('mysql');
const { connect } = require('./routes');
const conn = mysql.createConnection({
    host:'localhost',   
    user:'root',  
    password:'root',
    database:'syan'
})

conn.connect(function(err){
    if(err){ console.log("连接失败"); }
    console.log("连接成功","连接线程ID:"+conn.threadId);
})

end( )  —— 断开数据库连接

conn.end();

如果在后续接上断开数据库连接的话,在输出连接成功之后就会断开结束;

 数据库操作

        通过query()方法进行数据库操作,参数是sql语句,还有callback回调;callback常用有两个参数,一个是err,另外一个是result;开篇已经提供了数据库一些常用命令操作的篇目,这里对于数据库命令的内容不再过多的讲述;

下面来编写查询该数据库中的sen表:

const mysql = require('mysql');
const conn = mysql.createConnection({
    host:'localhost',   
    user:'root',  
    password:'root',
    database:'syan'
})

conn.connect(function(err){
    if(err){ console.log("连接失败"); }
    console.log("连接成功","连接线程ID:"+conn.threadId);
})

// 查询表数据sql语句 :SELECT * FROM sen;
const sql = "SELECT * FROM sen;" 
conn.query(sql,function(err,result){
    if(err){ console.log("sql语句执行异常;") }
    console.log("成功",result);
})

// 断开连接
conn.end();

query() 

 增

        使用query()方法为数据库中添加一条数据;数据内容是(sName:'YAN',sAge:'18');

1 . 编写代码

const mysql = require('mysql');
const conn = mysql.createConnection({
    host:'localhost',   
    user:'root',  
    password:'123456',
    database:'syan'
})

// 插入表数据sql语句 :INSERT INTO sen VALUES (?,?)
// ? 表示一条数据当中有几个字段(sName,sAge)
conn.connect(function(err){
    if(err){ console.log("连接失败"); }
    console.log("连接成功","连接线程ID:"+conn.threadId);
})

const sql = "INSERT INTO sen VALUES (?,?)";
const sqlParams = ['YAN','18'];

conn.query(sql,sqlParams,function(err,result){
    if(err){ console.log("sql语句执行异常;"); }
    console.log("成功",result);
})
// 断开连接
conn.end();

         可以通过查询语句进行查看,也可以通过图形化工具查看数据变化会更加方便写;

         使用query()方法为数据库中修改一条数据;修改数据内容是(sName:'LIN',sAge:'18');

1 .编写代码:

const mysql = require('mysql');
const conn = mysql.createConnection({
    host:'localhost',   
    user:'root',  
    password:'123456',
    database:'syan'
})

conn.connect(function(err){
    if(err){ console.log("连接失败"); }
    console.log("连接成功","连接线程ID:"+conn.threadId);
})

// 修改表数据sql语句 :UPDATE SET sAge = '18' WHERE sName = 'LIN'
// 将sName为'LIN'的sAge改为18;
const sql = "UPDATE sen SET sAge = ? WHERE sName = ?";
const sqlParams = ['18','LIN'];
conn.query(sql,sqlParams,function(err,result){
    if(err){ console.log("sql语句执行异常;"); }
    console.log("成功",result);
})

// 断开连接
conn.end();

 删

        使用query()方法为数据库中删除一条数据;删除数据内容是(sName:'ZHENG',sAge:'18');

1. 编写代码

const mysql = require('mysql');
const conn = mysql.createConnection({
    host:'localhost',   
    user:'root',  
    password:'123456',
    database:'syan'
})

conn.connect(function(err){
    if(err){ console.log("连接失败"); }
    console.log("连接成功","连接线程ID:"+conn.threadId);
})

// 删除表数据sql语句 DELETE FROM sen WHERE sName = 'ZHENG' AND sAge = 18;
// 删除一条数据;
const sql = "DELETE FROM sen WHERE sName = ? AND sAge = ?";
const sqlParams = ['ZHENG','18'];
conn.query(sql,sqlParams,function(err,result){
    if(err){ console.log("sql语句执行异常;"); }
    console.log("成功",result);
})

// 断开连接
conn.end();

        以上就是关于在Node中引入mysql数据库模块的一个基本使用,通过createConnection() 方法建立与数据库相连接的对象,再通过这个对象使用connect()方法进行数据库的连接,连接之后通过query()方法操作数据库,操作完用end()方法进行数据库的断开,那么以上就是本篇的全部内容,在下一篇内容当中会来讲到关于在Express框架中引入MySQL数据库模块的使用,感谢大家的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis主从复制,一主多仆启动流程

文章目录一、安装redis二、复制修改配置文件三、添加conf配置文件四、开启主从复制五、薪火相传六、反客为主7、哨兵模式一、安装redis redis安装笔记 https://blog.csdn.net/G_GUi/article/details/128361131 二、复制修改配置文件 把redis.conf复制到一个新建文件夹里面&a…

安卓手机还有这么多神仙玩法,关键只有少数人知道

随着“智能手机”的快速更新迭代,手机系统逐渐融入了许多实用功能;今年Android手机市场竞争相当激烈,各大手机品牌都争先恐后地向消费者展示自己的新机型。今天我就来给大家分享几个只有安卓手机才有的隐藏黑科技功能,每个功能都非…

cocos creator新手教程:第003节3D模型的基本概念

3.1 计算机如何制作一个3D模型 讲述这个问题之前,我们先来看下现实生活中我们要做一个模型,应该如何做呢?首先我们要把模型的形状给雕刻构建出来,现实生活中的物体都是由分子组成的连续的表面,计算机是离散的无法做到这…

【jQuery】常用API——尺寸、位置操作

一、jQuery 尺寸 以上参数为空&#xff0c;则是获取相应值&#xff0c;返回的是数字型。如果参数为数字&#xff0c;则是修改相应值。参数可以不必写单位。 <style>div {width: 200px;height: 200px;background-color: pink;padding: 10px;border: 15px solid red;margin…

在Windows中安装Mysql数据库(shawn安装成功记录)

一、下载安装包 首先去官网下载mysql安装包 下载网址:https://dev.mysql.com/downloads/mysql/ 下载Windows系统版本,如下图 注意版本必须是8.xx, 5开头的版本不适合本教程   点击下载,选择自己的文件路径,C盘非C盘都可以(我没有放C盘),路径中不要出现中文…

【蓝桥杯简单篇】Python组刷题日寄Part08

刷题日记&#xff1f;刷题日寄&#xff01; 萌新备战蓝桥杯python组 &#x1f339; 发现有需要纠正的地方&#xff0c;烦请指正&#xff01; &#x1f680; 欢迎小伙伴们的三连关注&#xff01; 往期系列&#xff1a; 【蓝桥杯简单篇】Python组刷题日寄Part01 【蓝桥杯简单篇】…

SCRM开源营销平台MarketGo-创建员工活码

一、背景介绍 客户需求&#xff1a;企业在做营销活动的时候&#xff0c;会有大量的客户需要添加企业微信的联系方式。这样就有两个问题&#xff1a; 一个企业微信账号添加太多会受到企业微信的限制&#xff1b;如果有多个企业微信的账号&#xff0c;添加的客户的数量也不平均…

如何给PPT文件添加水印?

我们在制作PPT的时候&#xff0c;有时候需要在幻灯片上加入logo&#xff0c;或者特定的大小、颜色等一致的文字标题&#xff0c;而幻灯片通常都是很多页数的&#xff0c;如果一张张幻灯片来添加&#xff0c;那就很费功夫。 这种情况&#xff0c;我们就可以选择通过“幻灯片母版…

SSL/TLS协议详解 - https为什么比http更安全

概述 首先纠正一个错误&#xff0c;可能很多初学者都以为HTTPS跟HTTP一样&#xff0c;都属于应用层协议。但其实HTTPS并不是一个单独的协议。HTTPS是安全版本的HTTP&#xff0c;简单理解 HTTPS HTTP SSL/TLS&#xff0c;即HTTPS就是使用SSL/TLS协议对HTTP报文进行了加密处理…

一不小心进入“决赛圈”,没“阳过”的怎么办?

前两天看到一个央视新闻&#xff0c;说河南新冠病毒感染率接近90%&#xff0c;流行毒株是奥密克戎BA.5.2&#xff0c;数字让我挺吃惊的&#xff1a;真有这么多人感染了&#xff1f; 如果是这样&#xff0c;我就属于那幸运的10%了&#xff0c;没有经历过刀片嗓&#xff0c;水泥鼻…

机器学习--模型调参、超参数优化、网络架构搜索

目录 一、模型调参 手动调超参数 多次调参的管理 机器调参与人调参的成本比较 自动调参&#xff08;AutoML&#xff09; 总结 二、超参数优化 在搜索空间中选择超参数 HPO算法有哪些 Black-Box Multi-Fidelity 总结 三、网络架构搜索 Neural Architecture Sear…

【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )

文章目录一、FlowLayout 流式布局二、FlowLayout 流式布局 API三、FlowLayout 流式布局代码示例1、FlowLayout 流式布局左对齐代码示例及执行效果2、FlowLayout 流式布局居中对齐代码示例及执行效果2、FlowLayout 流式布局右对齐代码示例及执行效果一、FlowLayout 流式布局 Flo…

上半年要完成的博客60

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

RT-Thread系列--对象容器

一、目的RT-Thread号称小而美&#xff0c;那具体美在哪里呢&#xff1f;下面我们就来说说首先&#xff0c;代码简练逻辑清晰明了&#xff1b;其次是框架设计。其创新性的对象容器系统是我认为最优美的设计亮点&#xff0c;本篇的目的就是给大家介绍一下对象容器的设计以及这样设…

sklearn聚类之谱聚类SpectralClustering

文章目录基本原理sklearn中谱聚类的构造实战基本原理 谱聚类是一种基于图论的聚类方法&#xff0c;所谓图&#xff0c;就是将空间中的所有点连接起来&#xff0c;只要这些连接中出现了一个圈&#xff0c;就可以称之为图。如果把这些连线加上一个权重&#xff0c;就叫做加权图。…

小程序开发经验分享(6)开发流程大全

一、准备的资料 我们在开发微信小程序前,需要准备下相关资料。这个资料主要是后面进行ICP备案,微信小程序认证以及申请支付接口时需要用到。 资料如下: 营业执照【个体经营户或公司都行】银行开户许可证【个体经营户可以用法人个人银行卡】,企业网银【最好开通】。相关类…

车载以太网 - DoIP实体状态信息AliveCheck - 08

我们知道车载以太网的实体在车内一般常见的就是网关和节点,而网关和节点的状态信息对我们的以太网通信尤为重要,我们只有知道节点或者网关所处的状态,才能更好的进行下一步处理或者诊断,今天我们就来详细的了解下DoIP实体的状态信息这部分在ISO 13400中的定义。 DoIP实体状…

多图解析manacher算法原理

什么是manacher算法 用于快速计算一个字符串的最长回文子串 什么是最长回文子串&#xff1f; 例如&#xff1a;abc12321中&#xff0c;最长回文子串为12321&#xff0c;即子字符串中最长&#xff0c;且是回文的那个 怎么用暴力做法找出最长回文子串呢&#xff1f; 长度为奇…

线程等待,线程休眠,线程状态

线程等待:因为线程与线程之间&#xff0c;调度顺序是完全不确定&#xff0c;它取决于操作系统本身调度器的一个实现&#xff0c;但是有时候我们希望这个顺序是可控的&#xff0c;此时的线程等待&#xff0c;就是一种方法&#xff0c;用来控制线程结束的先后顺序&#xff1b; 1)…

神经网络基础部件-激活函数详解

本文分析了激活函数对于神经网络的必要性&#xff0c;同时讲解了几种常见的激活函数的原理&#xff0c;并给出相关公式、代码和示例图。 一&#xff0c;激活函数概述 1.1&#xff0c;前言 人工神经元(Artificial Neuron)&#xff0c;简称神经元(Neuron)&#xff0c;是构成神经…