上篇介绍了MySQL数据库的安装,本篇介绍Node.js服务器如何连接MySQL,并实现增删改查数据库表记录。
新建项目,并安装mysql2数据库驱动模块。
代码如下:
/**
* MySQL数据库操作
*/
const util = require("util");
//加载数据库驱动模块
const mysql = require("mysql2");
//----------------使用连接操作--------------
//创建数据连接
const connection = mysql.createConnection({
host:"localhost",//数据库地址
user:"root",//用户名
password:"wlq0MySQL@",//密码
database:"studentdb"//数据库名称
});
//开启连接
connection.connect(function(err){
if(err)
{
console.error("数据库连接错误:"+err.message);
return;
}
console.log("数据库连接成功,连接ThreadID="+connection.threadId);
});
//查询1:query(sqlString, callback)
connection.query("select * from student where Id=1001",(err,results,fields)=>{
if(err) throw err;
console.log("=======查询方式1========");
// console.log("查询字段:"+util.inspect(fields));
console.log(util.inspect(results));
});
//查询2:query(sqlString, values, callback)
connection.query("select * from student where Id=?",[1002],(err,results,fields)=>{
if(err) throw err;
console.log("=======查询方式2==========");
console.log(util.inspect(results));
});
//查询3:query(options, callback)
connection.query({sql:"select * from student where Id=?",timeout:30000,values:[1003]},(err,results,fields)=>{
if(err) throw err;
console.log("=======查询方式3==========");
console.log(util.inspect(results));
});
//添加方式1
connection.query("insert into student set ?",{Id:1005,Name:"July",Age:23,Weight:45.5},(err,results)=>{
if(err) throw err;
console.log("======插入数据成功========");
});
//添加方式2
connection.query("insert into student (Id,Name,Age,Weight) values(?,?,?,?)",[1006,"Wol",23,65.4],(err,result)=>{
if(err) throw err;
console.log("=====数据插入成功====");
});
//删除
connection.query("delete from student where id=1006",(err,result)=>{
if(err) throw err;
console.log("删除记录成功!");
});
//修改
connection.query("update student set Age=?,Weight=? where Id=?",[16,35.8,1001],(err,result)=>{
if(err) throw err;
console.log("数据修改成功");
});
//终止连接
connection.end((err)=>{
console.log("数据库连接终止!");
});
// //终止连接2
// connection.destroy();
//-----------------使用连接池【增删改查】----------------
const pool = mysql.createPool({
host:"localhost",//数据库地址
user:"root",//用户名
password:"wlq0MySQL@",//密码
database:"studentdb",//数据库名称
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
//查询
pool.query("select * from student",(err,results,fields)=>{
if(err) throw err;
console.log("===使用连接池查询======");
console.log(util.inspect(results));
});
//其他的略
数据库内原有手动添加的数据记录
运行结果如下:【注意】屏蔽某些代码接口,测试对应的API功能。