express連接MySQL數據庫實現增刪改查

1、express操作數據庫

1.1、安裝mysql模塊

cnpm i mysql --save

1.2、連接mysql數據庫

本地先安裝好mysql,這裏就不再贅述mysql數據庫的安裝過程了。在mysql數據庫中創建名爲 stusystem 的數據庫,創建 stu 表,在表中隨意添加兩條數據。

創建 mysql.js 文件:

const mysql = require('mysql')

// 創建mysql連接
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "select * from stu"; // 執行查詢語句

connection.query(sql,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
    console.log(result)
    connection.destroy(); // 釋放資源
})

執行 mysql.js 文件:

node mysql

在控制檯打印的結果:

[
  RowDataPacket { id: 1, name: '張三', age: 20, sex: '男' },
  RowDataPacket { id: 2, name: '李四', age: 21, sex: '男' }
]

1.3、增刪改查方法

(1)新增數據

在 mysql.config.js 文件中編寫添加數據的代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect(); // 建立連接

const sql = "insert into stu(stuname,age,sex) values(?,?,?)" //SQL語句
const sqlParams = ["小明",22,"男"] // 動態參數

connection.query(sql,sqlParams,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result); // 打印添加結果
})

connection.end() // 關閉連接

運行 mysql.config.js 文件

node mysql.config

運行結果:
在這裏插入圖片描述

查看數據庫:
在這裏插入圖片描述

(2)修改數據

代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "update stu set stuname=?,age=?,sex=? where sid=?"
const sqlParams = ["韓梅梅",18,"女",3]

connection.query(sql,sqlParams,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result);

})

connection.end()

運行結果:
在這裏插入圖片描述

查看數據庫:
在這裏插入圖片描述

(3)刪除數據

代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "delete from stu where sid=?"
const sqlParams = [3]

connection.query(sql,sqlParams,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result);

})

connection.end()

運行結果:
在這裏插入圖片描述

(4)查詢所有數據

代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "select * from stu";

connection.query(sql,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result);

})

connection.end()

運行結果:
在這裏插入圖片描述

(5)根據條件查詢數據

代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "select * from stu where stuname=?";
const sqlParams = ["張三"]

connection.query(sql,sqlParams,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result);

})

connection.end()

運行結果:
在這裏插入圖片描述

(6)多表查詢

先創建2張表,分別添加如下數據:

學生表 stu
在這裏插入圖片描述

年級表 grade
在這裏插入圖片描述

代碼:

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

connection.connect();

const sql = "select * from stu,grade where stu.gid = grade.gid";

connection.query(sql,(err,result)=>{
    if(err) {
        console.log(err);
        return
    }
   
    console.log(result);

})

connection.end()

運行結果:
在這裏插入圖片描述

1.4、客戶端發起請求操作數據庫(以查詢爲例)

在 routes 目錄創建路由文件 stu.js,代碼如下:

let express = require('express')
let router = express.Router()
let mysql = require('mysql')

let conn = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'root',
    port: '3306',
    database: 'stusystem'
})

router.get("/query",(req,res,next)=>{
  conn.connect();
  let sql = "select * from stu,grade where stu.gid=grade.gid";
  conn.query(sql,(err,result)=>{
    if(err){
        res.json({
            code: 500,
            msg: "SQL執行錯誤",
            err
        })
    }else{
        res.json({
            code: 200,
            msg: "查詢成功",
            data: result
        })
    }
    conn.destroy();
  })
})

module.exports = router

在 app.js 入口文件中配置路由信息,代碼如下:

let stuRouter = require('./routes/stu');
app.use('/stu',stuRouter);

執行 npm start 啓動服務,使用 postman 測試get請求 http://127.0.0.1:3000/stu/query

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章