国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

nodejs操作MySQL數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了nodejs操作MySQL數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、操作數(shù)據(jù)庫的步驟

  • 安裝操作 MySQL 數(shù)據(jù)庫的第三方模塊(mysql
  • 通過 mysql 模塊連接到 MySQL 數(shù)據(jù)庫
  • 通過 mysql 模塊執(zhí)行 SQL 語句

nodejs操作MySQL數(shù)據(jù)庫

?

2、安裝與配置 mysql 模塊

2.1、安裝 mysql 模塊

  • mysql 模塊是托管于 npm 上的第三方模塊。它提供了在 Node.js 項目中連接操作 MySQL 數(shù)據(jù)庫的能力。
  • 想要在項目中使用它,需要先運行如下命令,將 mysql 安裝為項目的依賴包:
npm install mysql

2.2、配置 mysql 模塊

????????在使用 mysql 模塊操作 MySQL 數(shù)據(jù)庫之前,必須先對 mysql 模塊進行必要的配置,主要的配置步驟如下:

// 1. 導入 mysql 模塊
const mysql = require('mysql')
// 2. 建立與 MySQL 數(shù)據(jù)庫的連接關(guān)系
const db = mysql.createPool({
  host: '127.0.0.1', // 數(shù)據(jù)庫的 IP 地址
  user: 'root', // 登錄數(shù)據(jù)庫的賬號
  password: 'cherry', // 登錄數(shù)據(jù)庫的密碼
  database: 'class', // 指定要操作哪個數(shù)據(jù)庫
})

2.3、測試 mysql 模塊能否正常工作

調(diào)用 db.query() 函數(shù),指定要執(zhí)行的 SQL 語句,通過回調(diào)函數(shù)拿到執(zhí)行的結(jié)果:

// 測試 mysql 模塊能否正常工作
 db.query('select 1', (err, results) => {
  // mysql 模塊工作期間報錯了,就進入這個if判斷語句,打印這個錯誤信息
  if(err) return console.log(err.message)
  // 只要能打印出 [ RowDataPacket { '1' : 1} ]的結(jié)果,就證明數(shù)據(jù)庫連接正常
  console.log(results)
})

3、使用 mysql 模塊操作 MySQL 數(shù)據(jù)庫

3.1、查詢數(shù)據(jù)

查詢 users 表中所有的數(shù)據(jù):

// 查詢 users 表中所有的數(shù)據(jù)
 const sqlStr = 'select * from student'
db.query(sqlStr, (err, results) => {
  // 查詢數(shù)據(jù)失敗
  if (err) return console.log(err.message)
  // 查詢數(shù)據(jù)成功
  // 注意:如果執(zhí)行的是 select 查詢語句,則執(zhí)行的結(jié)果是數(shù)組
  console.log(results)
})

3.2、插入數(shù)據(jù)

users 表中新增數(shù)據(jù), 其中 username Spider-Manpassword pcc321。示例代碼如下:

// 向 users 表中,新增一條數(shù)據(jù),其中 username 的值為 Spider-Man,password 的值為 pcc123
 const user = { username: 'Spider-Man', password: 'pcc123' }
// 定義待執(zhí)行的 SQL 語句,其中英文的 ? 表示占位符
const sqlStr = 'insert into users (username, password) values (?, ?)'
// 執(zhí)行 SQL 語句,使用數(shù)組的形式,依次為 ? 占位符指定具體的值
db.query(sqlStr, [user.username, user.password], (err, results) => {
  // 執(zhí)行 SQL 語句失敗了
  if (err) return console.log(err.message)
  // 成功了
  // 注意:如果執(zhí)行的是 insert into 插入語句,則 results 是一個對象
  // 可以通過 affectedRows 屬性,來判斷是否插入數(shù)據(jù)成功
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功!')
  }
}) 

3.3、插入數(shù)據(jù)的便捷方式

????????向表中新增數(shù)據(jù)時,如果數(shù)據(jù)對象的每個屬性數(shù)據(jù)表的字段一一對應,則可以通過如下方式快速插入數(shù)據(jù):

// 演示插入數(shù)據(jù)的便捷方式
 const user = { username: 'Spider-Man2', password: 'pcc4321' }
// 定義待執(zhí)行的 SQL 語句
const sqlStr = 'insert into users set ?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, user, (err, results) => {
  if (err) return console.log(err.message) // 失敗
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功')    // 成功
  }
}) 

3.4、更新數(shù)據(jù)

可以通過如下方式,更新表中的數(shù)據(jù):

// 演示如何更新用戶的信息
 const user = { id: 6, username: 'aaa', password: '000' }
// 定義 SQL 語句
const sqlStr = 'update users set username=?, password=? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行了 update 語句之后,執(zhí)行的結(jié)果,也是一個對象,可以通過 affectedRows 判斷是否更新成功
  if (results.affectedRows === 1) {
    console.log('更新成功')
  }
}) 

3.5、更新數(shù)據(jù)的便捷方式

????????更新表數(shù)據(jù)時,如果數(shù)據(jù)對象的每個屬性數(shù)據(jù)表的字段一一對應,則可以通過如下方式快速更新表數(shù)據(jù):

// 演示更新數(shù)據(jù)的便捷方式
 const user = { id: 6, username: 'aaaa', password: '0000' }
// 定義 SQL 語句
const sqlStr = 'update users set ? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [user, user.id], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('更新數(shù)據(jù)成功')
  }
}) 

3.6、刪除數(shù)據(jù)

在刪除數(shù)據(jù)時,推薦根據(jù) id 這樣的唯一標識,來刪除對應的數(shù)據(jù)。示例如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-406780.html

// 刪除 id 為 5 的用戶
const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 5, (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行 delete 語句之后,結(jié)果也是一個對象,也會包含 affectedRows 屬性
  if (results.affectedRows === 1) {
    console.log('刪除數(shù)據(jù)成功')
  }
}) 

3.7、標記刪除

  • 使用 DELETE 語句,會把真正的把數(shù)據(jù)從表中刪除掉。為了保險起見,推薦使用標記刪除的形式,來模擬刪除的動作。
  • 所謂的標記刪除,就是在表中設(shè)置類似于 status 這樣的狀態(tài)字段,來標記當前這條數(shù)據(jù)是否被刪除。
  • 當用戶執(zhí)行了刪除的動作時,我們并沒有執(zhí)行 DELETE 語句把數(shù)據(jù)刪除掉,而是執(zhí)行了 UPDATE 語句,將這條數(shù)據(jù)對應的 status 字段標記為刪除即可。
// 標記刪除:使用update 語句代替 delete 語句;只更新數(shù)據(jù)的狀態(tài),并沒有真正刪除
const sqlStr = 'update users set status=? where id=?'
db.query(sqlStr, [1, 6], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('標記刪除成功')
  }
})

3.8、完整示例代碼

// 1. 導入 mysql 模塊
const mysql = require('mysql')
// 2. 建立與 MySQL 數(shù)據(jù)庫的連接關(guān)系
const db = mysql.createPool({
  host: '127.0.0.1', // 數(shù)據(jù)庫的 IP 地址
  user: 'root', // 登錄數(shù)據(jù)庫的賬號
  password: 'cherry', // 登錄數(shù)據(jù)庫的密碼
  database: 'class', // 指定要操作哪個數(shù)據(jù)庫
})

/*// 測試 mysql 模塊能否正常工作
 db.query('select 1', (err, results) => {
  // mysql 模塊工作期間報錯了
  if(err) return console.log(err.message)
  // 能夠成功的執(zhí)行 SQL 語句
  console.log(results)
})*/

// 查詢 users 表中所有的數(shù)據(jù)
/* const sqlStr = 'select * from student'
db.query(sqlStr, (err, results) => {
  // 查詢數(shù)據(jù)失敗
  if (err) return console.log(err.message)
  // 查詢數(shù)據(jù)成功
  // 注意:如果執(zhí)行的是 select 查詢語句,則執(zhí)行的結(jié)果是數(shù)組
  console.log(results)
})*/

// 向 users 表中,新增一條數(shù)據(jù),其中 username 的值為 Spider-Man,password 的值為 pcc123
/* const user = { username: 'Spider-Man', password: 'pcc123' }
// 定義待執(zhí)行的 SQL 語句
const sqlStr = 'insert into users (username, password) values (?, ?)'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [user.username, user.password], (err, results) => {
  // 執(zhí)行 SQL 語句失敗了
  if (err) return console.log(err.message)
  // 成功了
  // 注意:如果執(zhí)行的是 insert into 插入語句,則 results 是一個對象
  // 可以通過 affectedRows 屬性,來判斷是否插入數(shù)據(jù)成功
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功!')
  }
}) */

// 演示插入數(shù)據(jù)的便捷方式
/* const user = { username: 'Spider-Man2', password: 'pcc4321' }
// 定義待執(zhí)行的 SQL 語句
const sqlStr = 'insert into users set ?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, user, (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('插入數(shù)據(jù)成功')
  }
}) */

// 演示如何更新用戶的信息
/* const user = { id: 6, username: 'aaa', password: '000' }
// 定義 SQL 語句
const sqlStr = 'update users set username=?, password=? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行了 update 語句之后,執(zhí)行的結(jié)果,也是一個對象,可以通過 affectedRows 判斷是否更新成功
  if (results.affectedRows === 1) {
    console.log('更新成功')
  }
}) */

// 演示更新數(shù)據(jù)的便捷方式
/* const user = { id: 6, username: 'aaaa', password: '0000' }
// 定義 SQL 語句
const sqlStr = 'update users set ? where id=?'
// 執(zhí)行 SQL 語句
db.query(sqlStr, [user, user.id], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('更新數(shù)據(jù)成功')
  }
}) */

// 刪除 id 為 5 的用戶
/* const sqlStr = 'delete from users where id=?'
db.query(sqlStr, 5, (err, results) => {
  if (err) return console.log(err.message)
  // 注意:執(zhí)行 delete 語句之后,結(jié)果也是一個對象,也會包含 affectedRows 屬性
  if (results.affectedRows === 1) {
    console.log('刪除數(shù)據(jù)成功')
  }
}) */

// 標記刪除
const sqlStr = 'update users set status=? where id=?'
db.query(sqlStr, [1, 6], (err, results) => {
  if (err) return console.log(err.message)
  if (results.affectedRows === 1) {
    console.log('標記刪除成功')
  }
})

到了這里,關(guān)于nodejs操作MySQL數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • nodejs進階(6)—連接MySQL數(shù)據(jù)庫

    nodejs進階(6)—連接MySQL數(shù)據(jù)庫

    連接MySQL數(shù)據(jù)庫需要安裝支持 npm install mysql 我們需要提前安裝按mysql sever端 建一個數(shù)據(jù)庫mydb1 然后建一張表user如下 接下來我們利用nodejs連接mysql數(shù)據(jù)庫 但是實際每次創(chuàng)建連接都需要一定的開銷,執(zhí)行效率就會有影響。下面介紹一種連接池連mysql的方法:node-mysql node-mysql是目前

    2024年02月05日
    瀏覽(22)
  • 【實戰(zhàn)】nodejs 必會技能 —— 封裝 mysql 數(shù)據(jù)庫連接

    【實戰(zhàn)】nodejs 必會技能 —— 封裝 mysql 數(shù)據(jù)庫連接

    [mysql - mysql中文文檔翻譯 - Breword 文檔集合]:(https://www.breword.com/mysqljs-mysql) 安裝依賴包: [mysql - npm]:(https://www.npmjs.com/package/mysql) 運行中若遇到如下報錯,請檢查輸入信息是否正確(host、port、user、password 等),jdbc配置中拿到的相關(guān)信息尤其是密碼很可能是加密后的 node -

    2024年02月10日
    瀏覽(21)
  • Android 連接MySql數(shù)據(jù)庫步驟

    1.首先我們需要導入mysql驅(qū)動jar包下載地址: ? 在android studio的build.gradle中插入 } 2、建立JDBCutils類 ? ?分析:jdbc:mysql://192.168.43.215:3306/user\\\",\\\"root\\\",\\\"1234\\\"語句 ? ?1、jdbc:mysql://基本格式 ? ?2、192.168.43.215你當前連的網(wǎng)的Ipv4地址(可以在cmd命令窗口輸入ipconfig命令,找到你連的網(wǎng)(

    2024年02月05日
    瀏覽(23)
  • Linux鏈接oracle數(shù)據(jù)庫啟動——操作步驟

    原本的畫面會變?yōu)?接著請輸入 輸入 另外停止數(shù)據(jù)庫的指令如下: ? 回到終端機模式,輸入:ps -ef|grep ora_ (作用是:查看是否有Oracle的進程,如果有,大多數(shù)情況說明啟動了。) 輸入:$ lsnrctl status (作用是:檢查監(jiān)聽是否啟動。) 以下為沒有啟動。 如果沒有啟動,可以輸入:$

    2024年02月04日
    瀏覽(93)
  • PowerDesigner 連接MySQL數(shù)據(jù)庫詳細步驟

    PowerDesigner 連接MySQL數(shù)據(jù)庫詳細步驟

    1、新建一個 Physical Data ,選擇自己要連接的數(shù)據(jù)庫 在PowerDesigner菜單欄中,依次點擊“File -New Model-Physical Data” 點擊OK 2、連接數(shù)據(jù)源 依次點擊“File -Reverse Enginner-Database…” 顯示如下頁面,點擊確定 點擊紅框,彈出一下畫面 點擊configure… 點擊創(chuàng)建新的數(shù)據(jù)源,選擇用戶數(shù)據(jù)

    2024年02月11日
    瀏覽(33)
  • 使用eclipse連接mysql數(shù)據(jù)庫步驟

    使用eclipse連接mysql數(shù)據(jù)庫步驟

    1.導入連接MySQL數(shù)據(jù)庫驅(qū)動包(例如mysql-connector-java-5.1.7-bin.jar),并測試。 步驟: 1)在eclipse里面點擊右上角的圖標,如下圖所示。 2)選中Database Connections右鍵,點new。 3)選擇MySQL,點擊next。 4)如圖所示: 2.引用MySQL驅(qū)動包jar 在項目右鍵一個文件夾lib,把驅(qū)動包復制進去,

    2024年02月11日
    瀏覽(48)
  • JDBC連接數(shù)據(jù)庫----Mysql七大步驟詳解

    JDBC連接數(shù)據(jù)庫----Mysql七大步驟詳解

    ? ? ? ?? 1、什么是jdbc? ????????JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)者能夠編

    2023年04月12日
    瀏覽(90)
  • navicat導入sql數(shù)據(jù)庫文件的簡單操作步驟

    navicat導入sql數(shù)據(jù)庫文件的簡單操作步驟

    目錄 前言必讀 一、概念 二、操作步驟 (一)新建連接? (二)新建數(shù)據(jù)庫 (三)數(shù)據(jù)庫導入sql文件 讀者手冊(必讀)_云邊的快樂貓的博客-CSDN博客 在很多項目當中都有sql文件導入到MySQL數(shù)據(jù)庫的需要,因為有sql數(shù)據(jù)庫文件,這個項目才能正常運行起來,那么現(xiàn)在就來學習

    2024年02月03日
    瀏覽(22)
  • 在 MySQL 數(shù)據(jù)庫中刪除重復記錄的步驟

    當我們在處理數(shù)據(jù)庫中的數(shù)據(jù)時,有時候會出現(xiàn)重復記錄的情況,這些重復記錄會影響數(shù)據(jù)的正確性,需要將其刪除。下面是在 MySQL 數(shù)據(jù)庫中刪除重復記錄的步驟: 首先,我們需要找到數(shù)據(jù)庫表中的重復記錄??梢允褂靡韵?SQL 語句查詢表中所有的重復記錄: 其中, table_

    2024年02月15日
    瀏覽(92)
  • 詳細springboot實現(xiàn)MySQL數(shù)據(jù)庫的整合步驟

    詳細springboot實現(xiàn)MySQL數(shù)據(jù)庫的整合步驟

    提示:本文適用于初學者,資深玩家仁者見仁智者見智 在家閑來無事,想起最基礎(chǔ)的spring boot項目,但整合jdbc,鏈接數(shù)據(jù)庫一整個操作對于初學者來說還是有些困難,我順帶記錄一下。之后把springboot整合Mybatis和整合redis以及一些案例也寫一下,期待成品給大家。。。。 提示

    2024年02月03日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包