Node.js如何在專案中操作MySQL
目錄
- 1、在專案中操作 的步驟
- 2、安裝與配置 mysql 模組
- 1、安裝 mysql 模組
- 2、配置 mysql 模組
- 3、測試 mysql 模組能否正常工作
- 3、使用 mysql 模組操作 MySQL
- 1、查詢資料
- 2、插入資料
- 3、插入資料的便捷方式
- 4、更新資料
- 5、更新資料的便捷方式
- 6、刪除資料
- 7、標記刪除
1、在專案中操作 MySQL的步驟
(1)安裝操作 MySQL 資料庫的第三方模組(mysql)
(2)通過 mysql 模組連線到 MySQL 資料庫
(3)通過 mysql 模組執行 SQL 語句
2、安裝與配置 mysql 模組
1、安裝 mysql 模組
Mysql 模組是託管於 npm
上的第三方模組。它提供了在 Node. 專案中連線和操作 Myhttp://www.cppcns.com
想要在專案中使用它,需要先執行如下命令,將 mysql 安裝為專案的依賴包:
npm install mysql
如下:
2、配置 mysql 模組
如下圖,我的MySQL 資料庫中有如下資料:
在使用 mysql 模組操作 MySQL 資料庫之前,必須先對 mysql 模組進行必要的配置,主要的配置步驟如下:
//匯入模組 const mysql = require('mysql') //建立與mysql資料庫的聯絡 const db = mysql.createPool({ host:'127.0.0.1',//資料庫的IP地址 user:'root',//登入資料庫的賬號 password:'******',//登入資料庫的密碼 database:'bear2' //指定要操作哪個資料庫 })
3、測試 mysql 模組能否正常工作
呼叫 db.query()
函式,指定要執行的 SQL 語句,通過回撥函式拿到執行的結果:
//測試mysql能否正常工作 db.query('SELECT 1',(err,results)=>{ if(err) return console.log(err.message) //能夠成功的執行SQL語句 console.log(results) })
測試結果為:
3、使用 mysql 模組操作 MySQL 資料庫
1、查詢資料
查詢 student
表中所有的資料:
db.query('SELECT * FROM STUDENT',results)=>{ //查詢失敗 if(err) return console.log(err.message) //查詢成功 console.www.cppcns.comlog(results) })
結果為:
查詢成功,且得到的結果是一個數組。
2、插入資料
向 student
表中新增資料, 其中 cname
為 '小延'
,age
為 16
。示例程式碼如下:
//要插入到student表中的資料物件 const student = {cname:'小延',age:16} //待執行的SQL語句,其中英文的?表示佔位符 const sqlStr = 'INSERT INTO student(cname,age)VALUES(?,?)' //使用陣列的形式,依次為佔位符指定具體的值 db.query(sqlStr,[student.cname,student.age],results)=>{ if(err) return console.log(err.message) //失敗 if(results.affectedRows === 1){ console.log('插入成功') //成功 } })
結果為:
開啟資料庫,檢視資料,即:
資料插入成功。
3、插入資料的便捷方式
向表中新增資料時,如果資料物件的每個屬性和資料表的欄位一一對應,則可以通過如下方式快速插入資料:
//要插入到student表中的資料物件 const student = {cid:9,cname:'小楊',age:18,class_id:1002} //待執行的SQL語句,其中英文的?表示佔位符 const sqlStr = 'INSERT INTO student SET ?' //直接將資料物件當做佔位符的值 db.query(sqlStr,student,results)=>{ if(err) return console.log(err.message) //失敗 if(results.affectedRows === 1) console.log('插入資料成功!') })
結果為:
開啟資料庫,檢視資料,即:
資料插入成功。
4、更新資料
可以通過如下方式,更新表中的資料:
//要更新的資料物件 const student = {cid: 8,cname: '小欣',age: 18,class_id: 1002} //要執行的SQL語句 const sqlStr = 'UPDATE student SET cname=?,age=?,class_id=? WHERE cid=?' //呼叫db.query()執行SQL語句的同時,使用陣列依次為佔位符指定具體的值 db.query(sqlStr,student.age,student.class_id],results)=>{ if(err) return console.log(err.message) //失敗 if(results.affectedRows === 1) { console.log('更新資料成功!') } })
結果為:
開啟資料庫,檢視資料,即:
資料更新成功。
5、更新資料的便捷方式
更新表資料時,如果資料物件的每個屬性和資料表的欄位一一對應,則可以通過如下方式快速更新表資料:
const student = {cid:1,cname:doJMQsk'小鈺',age:17,class_id:1003} //要執行的SQL語句 const sqlStr = 'UPDATE student SET ? WHERE cid=?' 呼叫db.query()執行SQL語句的同時,使用陣列依次為佔位符指定具體的值 db.query(sqlStr,[student,student.cid],results)=>{ if(err) return console.log(err.message) //失敗 if(results.affectedRows === 1){ console.log('資料更新成功!') //成功 } })
結果為:
開啟資料庫,檢視資料,即:
資料更新成功。
6、刪除資料
在刪除www.cppcns.com資料時,最好根據 cid
這樣的唯一標識,來刪除對應的資料。示例如下:
//要執行的SQL語句 const sqlStr = 'DELETE FROM student WHERE cid=?' //呼叫db.query()執行sql語句的同時,為佔位符指定確定的值 db.query(sqlStr,3,results)=>{ if(err) return console.log(err.message) if(results.affectedRows === 1){ // 失敗 console.log('刪除資料成功!') //成功 } })
結果為:
開啟資料庫,檢視資料,即:
刪除資料成功。
需要注意的是:如果SQL語句有多個佔位符,則必須為每個佔位符指定具體的值,如果SQL語句只有一個佔位符,則可以省略陣列。
7、標記刪除
使用 DELETE
語句,會把真正的把資料從表中刪除掉。為了保險起見,推薦使用標記刪除的形式,來模擬刪除的動作。
所謂的標記刪除,就是在表中設定類似於 class_id
這樣的狀態欄位,來標記當前這條資料是否被刪除。
當用戶執行了刪除的動作時,我們並沒有執行 DELETE
語句把資料刪除掉,而是執行了 UPDATE
語句,將這條資料對應的class_id
欄位標記為刪除即可。
//標記刪除:使用UPDATE語句代替DELETE語句;只更新資料的狀態,並沒有真正刪除。 db.query('UPDATE student SET class_id=? WHERE cid=?',[1000,6],results)=>{ if(err) return console.log(err.message) if(results.affectedRows === 1){ // 失敗 console.log('標記刪除成功!') //成功 } })
結果為:
開啟資料庫,檢視資料,即:
標記刪除成功。
以上就是Node.js如何在專案中操作MySQL的詳細內容,更多關於Node.js操作MySQL的資料請關注我們其它相關文章!