Node.js 操作MySQL數據庫
文檔
# 項目要先安裝mysql包npm i mysql@xx // 安裝指定版本npm i mysql // 默認安裝最新版本
# 連接 mysq// 使用連接池連接const mysql = require('mysql')# 建立連接const db = mysql.createPool({host:'', // 數據庫的IP地址user:'root', // 登錄數據庫的賬號password:'密碼', // 密碼database:'xxx' // 指定要操作具體的數據庫 })# 測試mysq連接是否正常db.query('select 1',(err,results)=>{if(err) return console.log(err.message)//只要打印出 【RowDataPacket {'1':1}】 的結果,就證明數據庫連接正常 console.log(results)})# 插入數據
const user = {userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' insert into users(userName , age, gender) values(?,?,?)'
// 使用數組的形式,依次為 ? 占位符指定具體的值
db.query(sqlstr,[user.userName,user.age,user.gender],(err,results)=>{if(err) return console.log(err.message)if(results.affectedRows ===1){console.log('插入數據成功')}})# 插入數據的便捷方式 如果 插入的字段很多
# 向表中新增數據時,如果數據對象的每個屬性和數據表的字段 一一對應,則可以通過如下方式 快速插入數據
const user = {userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' insert into users set ?'
// 直接將數據對象當作占位符的值
db.query(sqlstr,user,(err,results)=>{if(err) return console.log(err.message)if(results.affectedRows ===1){console.log('插入數據成功')}})# 查詢數據 注意 注意 注意 如果執行的是 select 查詢語句,則執行的結果是數組const sqlstr = ' select * from users'
db.query(sqlstr,,(err,results)=>{if(err) return console.log(err.message)console.log(results)})# 更新數據
const user = {id:1001,userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' update users set userName = ?, age=?, gender=? where id=?'
// 使用數組的形式,依次為 ? 占位符指定具體的值
db.query(sqlstr,[user.userName,user.age,user.gender,user.id],(err,results)=>{if(err) return console.log(err.message)// 注意 執行 update語句之后,執行的結果,也是一個對象,可以通過affectedRows 判斷是否更新成功if(results.affectedRows ===1){console.log('更新數據成功')}})# 更新數據便捷方式 跟插入類似
# 更新表數據時,如果數據對象的每個屬性和數據表的字段 一一對應,則可以通過如下方式 快速更新數據
const user = {id:1001,userName:'zen',age:33,gender:'男'}
//用英文 ? 占位符
const sqlstr = ' update users set ? where id=?'
// 使用數組的形式,依次為 ? 占位符指定具體的值
db.query(sqlstr,[user.userName,user.id],(err,results)=>{if(err) return console.log(err.message)// 注意 執行 update語句之后,執行的結果,也是一個對象,可以通過affectedRows 判斷是否更新成功if(results.affectedRows ===1){console.log('更新數據成功')}})## 刪除數據//用英文 ? 占位符
const sqlstr = ' delete users where id=?'
// 注意 注意 注意 注意 如果SQL語句中有多個占位符,則必須使用數組為每個占位符指定具體的值如果sql語句中只有一個占位符,則可以省略數組
db.query(sqlstr,1001,(err,results)=>{if(err) return console.log(err.message)// 注意 執行 update語句之后,執行的結果,也是一個對象,可以通過affectedRows 判斷是否更新成功if(results.affectedRows ===1){console.log('更新數據成功')}})