在讲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数据库模块的使用,感谢大家的支持!