Node的数据库编程(MySQL),增删改查
Posted 别Null.了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node的数据库编程(MySQL),增删改查相关的知识,希望对你有一定的参考价值。
目录
在项目中操作mysql数据库的步骤
1、安装操作MySQL数据库的第三方模块(mysql)
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。 想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包: npm install mysql
2、通过mysql模块连接到MySQL数据库
配置mysql模块
//引入mysql2模块
const mysql = require('mysql2');
//2、创建数据库的连接
const connection = mysql.createConnection({
host:'localhost', //数据库服务器地址
port:3306, //mysql数据库的端口号
user:'root', //连接mysql的用户名
password:'******', //连接mysql的密码
database:'dbms' //要连接的数据库
})
3、通过mysql模块执行SQL语句
执行数据库的操作
在我的数据库dbms中存在一张student表为:
查询数据
A、普通查询:query(sql,回调函数)
B、条件查询:query(sqlString,values,回调函数),参数values对应的是sqlString中的占位符
示例:查询student表中cno为3的学生信息(?表示占位符)
//查询数据库中的表格的数据,回调函数中err参数存放的是查询错误的信息,若查询成功则result参数中放的是查询的结果集
//条件查询
connection.query({
sql:'select * from student where cno = ?',
values:['3']
},(err,result)=>{
if(err){
console.log(err);
return;
}
console.log(result);
})
//普通查询
connection.query('select * from indent',(err,result)=>{
if(err){
console.log(err);
return;
}
console.log(result);
})
条件查询的结果为:
插入数据
Insert into 表名(列名…) values(值…)
示例:向表student中插入一行数据
var addsql = "insert into stu(sno,cno,sname,sgender,sage,saddress) values(?,?,?,?,?,?)";
var addsql_params = ['12','3','刘备','男','29','陕西'];
connection.query({
sql:addsql,
values:addsql_params
},(err,result)=>{
if(err){
console.log(err);
return;
}
console.log('插入结果为:'+result);
})
插入后的结果为:
修改数据
Update 表名 set 列名=值,… where 条件
注意:不加where条件就会把所有的数据都更新
示例:将刚才添加的数据中姓名修改为‘巴啦啦小魔仙’,年龄修改为27
var updatesql = "update student set sname=?,sage=? where sno=?";
var updatesql_params = ['巴啦啦小魔仙',27,'12'];
connection.query({
sql:updatesql,
values:updatesql_params
},(err,result)=>{
console.log("受影响的行数:"+result.affectedRows);
console.log("改变的行数:"+result.changedRows);
})
修改后的结果:
删除数据
Delete from 表名 [where 条件]
示例:删除刚才添加的sno为12的学生信息
var delsql = "delete from student where sno=?";
connection.query(delsql,'12',(err,result)=>{
if(err){
console.log(err);
return;
}
console.log("删除的行数:"+result.affectedRows);
})
删除后的结果:
注意:防止sql的注入式攻击的方法:
注入式攻击:在进行语句的增删改查等操作时若有人拦截并添加一条永远满足的语句则会查询出所有的数据信息
select from stu where Sid=’S_1001’ (注入式攻击如在后面加or 1=1)
(1)使用占位符:?(提前预编译)
(2)使用connection.escape([参数字段])对值进行转义
以上是关于Node的数据库编程(MySQL),增删改查的主要内容,如果未能解决你的问题,请参考以下文章
Node连接MySQL数据库进行基本的增删改查操作(一看就会)