成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

怎樣在前端項目中使用MySQL模塊操作數(shù)據(jù)庫?

開發(fā) 前端 MySQL
要想在項目中操作數(shù)據(jù)庫, 首先要安裝操作 MySQL 數(shù)據(jù)庫的第三方模塊(mysql), 借助mysql 模塊連接到 MySQL 數(shù)據(jù)庫, 執(zhí)行 SQL 語句,具體的流程如下圖所示。

要想在項目中操作數(shù)據(jù)庫, 首先要安裝操作 MySQL 數(shù)據(jù)庫的第三方模塊(mysql), 借助mysql 模塊連接到 MySQL 數(shù)據(jù)庫, 執(zhí)行 SQL 語句,具體的流程如下圖所示。

安裝與配置 mysql 模塊

1. 安裝 mysql 模塊

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

npm install mysql

2. 配置 mysql 模塊

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

// 1.導(dǎo)入mysq1模塊
const mysql = require('mysql')
// 2.建立與 MySQL數(shù)據(jù)庫的連接
const db = mysql.createPool({
  host: '127.0.0.1',      //數(shù)據(jù)庫的IP地址
  user: 'root',           //登錄數(shù)據(jù)庫的賬號
  password:‘a(chǎn)dmin123',  //登錄數(shù)據(jù)庫的密碼
  database:‘my_db_01'    //指定要操作哪個數(shù)據(jù)庫
})

3. 測試 mysql 模塊能否正常工作

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

//檢測mysq1模塊能否正常工作
db.query('SELECT 1', (err, results) => {
   if (err) return console.log(err.message)
   //只要能打印出[RowDataPacket{'1':1}]的結(jié)果,就證明數(shù)據(jù)庫連接正常
   console.log(results)
})

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

1. 查詢數(shù)據(jù)

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

//查詢users表中所有的用戶數(shù)據(jù)
db.query('SELECT * FROM users', (err, results) => {
    //查詢失敗
    if (err) return console.log(err.message)
    //查詢成功
    console.log(results)
})

2. 插入數(shù)據(jù)

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

// 1. 要插入到users表中的數(shù)據(jù)對象
const user = { username: 'Spider-Man', password: 'pcc321' }
// 2. 待執(zhí)行的 SQL 語句,其中英文的? 表示占位符
const sqlStr = 'INSERT INTO users (username, password) VALUES (?, ?)'
// 3. 使用數(shù)組的形式,依次為?占位符指定具體的值
db.query(sqlStr, [user.username, user.password], (err, results) =? {
   if(err)return console.log(err.message)//失敗
   if(results.affectedRows=== 1) { console.log('插入數(shù)據(jù)成功') } // 成功
})

3. 插入數(shù)據(jù)的便捷方式

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

// 1. 要插入到users表中的數(shù)據(jù)對象
const (vser = { username: 'Spider-Man2', password: 'pcc4321'}
// 2. 待執(zhí)行的SQL語句,其中英文的?表示占位符
const sqlStr = 'INSERT INTO users SET ?'
// 3. 直接將數(shù)據(jù)對象當(dāng)作占位符的值
db.query(sqlStr, user, (err, results) => {
   if(err)return console.log(err.message)//失敗
   if(results.affectedRows===1){console.log('插入數(shù)據(jù)成功')}//成功
})

4. 更新數(shù)據(jù)

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

// 1.要更新的數(shù)據(jù)對象
const user = { id: 7, username: 'aaa', password: '000' }
// 2.要執(zhí)行的SQL 語句
const sqlStr = 'UPDATE users SET username=?, password=? WHERE id=?'
// 3.調(diào)用db.query()執(zhí)行 SQL 語句的同時,使用數(shù)組依次為占位符指定具體的值
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {
   if(err)return console.log(err.message) // 失敗
   if(results.affectedRows===1){console.log('更新數(shù)據(jù)成功!')}//成功
})

5. 更新數(shù)據(jù)的便捷方式

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

// 1. 要更新的數(shù)據(jù)對象
const user = { id: 7, username: 'aaaa', password: '0000' }
// 2. 要執(zhí)行的 SQL 語句
const sqlStr = 'UPDATE users SET ? WHERE id=?'
// 3. 調(diào)用db.query()執(zhí)行 SQL 語句的同時,使用數(shù)組依次為占位符指定具體的值
db.query(sqlStr,[user,user.id],(err,results) =>{
   if(err)return console.log(err.message)//失敗
   if(results.affectedRows === 1) {console.log('更新數(shù)據(jù)成功!') } //成功
})

6. 刪除數(shù)據(jù)

在刪除數(shù)據(jù)時,推薦根據(jù) id 這樣的唯一標識,來刪除對應(yīng)的數(shù)據(jù)。示例如下:

// 1.要執(zhí)行的 SQL 語句
const sqlStr = 'DELETE FROM users WHERE id=?'
// 2.調(diào)用 db.query()執(zhí)行 SQL語句的同時,為占位符指定具體的值
// 注意:如果SQL語句中有多個占位符,則必須使用數(shù)組為每個占位符指定具體的值
//        如果SQL語句中只有一個占位符,則可以省略數(shù)組
db.query(sqlStr, 7, (err, results) => {
   if(err)return console.log(err.message)//失敗
   if(results.affectedRows ===1){console.log('刪除數(shù)據(jù)成功!‘)}//成功
})

7. 標記刪除

使用 DELETE 語句,會把真正的把數(shù)據(jù)從表中刪除掉。為了保險起見,推薦使用標記刪除的形式,來模擬刪除的動作。

所謂的標記刪除,就是在表中設(shè)置類似于 status 這樣的狀態(tài)字段,來標記當(dāng)前這條數(shù)據(jù)是否被刪除。

當(dāng)用戶執(zhí)行了刪除的動作時,我們并沒有執(zhí)行 DELETE 語句把數(shù)據(jù)刪除掉,而是執(zhí)行了 UPDATE 語句,將這條數(shù)據(jù)對應(yīng)的 status 字段標記為刪除即可。

//標記刪除:使用 UPDATE 語句替代 DELETE語句;只更新數(shù)據(jù)的狀態(tài),并沒有真正刪除
db.query('UPDATE USERS SET status=1 WHERE id=?', 6, (err, results) =>(
  if(err)return console.log(err.message)//失敗
  if(results.affectedRows === 1){console.log('刪除數(shù)據(jù)成功!')}//成功
})
責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2011-07-05 10:27:06

MySQL數(shù)據(jù)庫檢索排序

2011-07-01 13:42:24

QT 數(shù)據(jù)庫

2009-09-15 09:50:07

Linq操作數(shù)據(jù)庫

2020-11-16 08:56:02

Python

2021-06-29 06:25:22

Nest.jsTypeORM數(shù)據(jù)庫

2011-04-19 10:20:09

數(shù)據(jù)庫

2009-09-03 09:52:26

C# treeview

2009-07-07 09:24:37

LINQ檢索

2023-05-23 16:25:48

MyBatisSQL數(shù)據(jù)庫

2009-08-24 16:46:04

C# 泛型

2009-08-04 14:52:33

Visual Web ASP.NET

2023-12-27 13:44:00

數(shù)據(jù)庫系統(tǒng)分布式

2023-04-27 09:36:43

2023-10-27 10:16:17

前端項目Rust

2023-12-14 15:07:31

多線程數(shù)據(jù)庫代碼

2022-10-09 15:41:54

Python數(shù)據(jù)庫

2011-01-20 10:39:09

postfixmysql

2016-05-11 10:09:49

數(shù)據(jù)層代碼FastQuery

2009-12-28 16:57:40

ADO .NET 類

2021-01-29 10:51:48

高并發(fā)數(shù)據(jù)庫緩存
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99视频在线播放 | 中文字幕蜜臀av | 日韩不卡视频在线 | 国产一区不卡 | 久久久国产一区二区三区四区小说 | 伦理一区二区 | 日韩一区二区三区精品 | 香蕉视频一区二区 | 国产精品久久久久久久模特 | 一区二区三区四区免费视频 | 91精品一区二区三区久久久久久 | 日韩欧美三区 | 午夜免费福利电影 | 国产精品色综合 | 欧美日韩1区2区3区 欧美久久一区 | av无遮挡| 国产精品无 | 国产免费av在线 | 成人不卡在线 | 国产精品视频一区二区三区四蜜臂 | 国产农村妇女精品一区 | 美女视频h| 天天操网 | 一区二区福利视频 | 国产女人与拘做受视频 | 久久伊人一区二区 | 欧美影院| 丝袜毛片 | 亚洲日韩中文字幕一区 | 天天操天天天干 | 欧美男人的天堂 | 一区视频在线播放 | 国内精品久久久久久久影视简单 | 另类视频在线 | 成人在线视频网址 | 在线亚洲免费视频 | 欧美一级片黄色 | 国产午夜精品一区二区 | 久久9精品 | 亚洲激情在线视频 | 成人影院在线 |