使用sequelize對數據庫進行增刪改查


由於本人對於命令比較執着,所以基本都是在命令下操作的,喜歡使用命令的可以使用Cmder,需要安裝、配置的可以參考這篇文章:

https://www.cnblogs.com/ziyoublog/p/10416684.html

首先我們需要在自己的文件夾下運行一下cmd

npm init -y 

  

(-y)的主要目的是跳過配置一系列的package.json

其次我們需要安裝兩個sequelize和mysql2

yarn add sequelize mysql2 -S
或者
npm install sequelize mysql2 -S

  

接下來我們需要在根目錄下新建一個js文件

// index.js
const Sequelize = require('sequelize')
const sequelize = new Sequelize(
    'testseq', // 數據庫名
    'root', // 用戶名
    'root', // 密碼
    {
        'dialect': 'mysql', // 數據庫使用mysql
        'host': 'localhost', // 數據庫服務器ip
        'port': 3306, // 數據庫服務器端口
        'define': {
            'underscored': true
        }
    }
)

  

上述操作是為了連接數據庫的,可以通過以下代碼驗證:

// 測試數據庫是否連接成功
sequelize
    .authenticate()
    .then(res => {
        console.log('Connection Success!')
    })
    .catch(err => {
        console.log('Connection Error')
    })

證明連接成功!

建立一個模板:

// 模板sequelize.define('表名', {}, {})
const User = sequelize.define(
    'first', {
        id: {
            field: 'id', // 字段名
            primaryKey: true,
            type: Sequelize.INTEGER, // 類型
            allowNull: false // 是否允許為空
        },
        name: {
            field: 'name',
            primaryKey: true,
            type: Sequelize.STRING
        },
        password: {
            field: 'password',
            primaryKey: true,
            type: Sequelize.STRING,
            allowNull: false
        }
    }, {
        tableName: 'first',
        timestamps: false,
        freezeTableName: true
    }
)

  

首先我們來實現往數據庫添加數據:

// 往數據庫添加單條數據
User.create({
    id: 1,
    name: 'test1',
    password: '123456'
})

 

 

 你就可以看到sql語句,接下來看看數據庫有沒有數據:

證明插入成功

其次就是改操作:

// 修改往數據庫數據(通過id去修改name或者password)
User.update({
    'name': 'test2'
}, {
    'where': { 'id': 1 }
})

  

sql語句:

 

 

 數據庫:

 

 name成功由test1變成了test2,證明成功!

查所有操作:

// 查詢所有
User.findAll().then((res) => {
    console.log(res)
})

  

 

 查單個操作:

// 查詢單條
User.findOne({
    'where': {
        'id': 1
    }
}).then(res => {
    console.log(res)
})

  

 

 由於就只有一條數據,所以查出來的結果是一樣的, 但是查詢單個findOne、全部findAll。

接下來就是刪除操作了:

// 刪除數據庫中某條數據
User.destroy({
    'where': {
        'id': 1
    }
})

  

 

 數據庫:

 

 已經順利刪除了。

以上操作需要在已經建立數據表的情況下。

完整代碼:

const Sequelize = require('sequelize')
const sequelize = new Sequelize(
    'testseq', // 數據庫名
    'root', // 用戶名
    'root', // 密碼
    {
        'dialect': 'mysql', // 數據庫使用mysql
        'host': 'localhost', // 數據庫服務器ip
        'port': 3306, // 數據庫服務器端口
        'define': {
            'underscored': true
        }
    }
)

// 測試數據庫是否連接成功
// sequelize
//     .authenticate()
//     .then(res => {
//         console.log('Connection Success!')
//     })
//     .catch(err => {
//         console.log('Connection Error')
//     })

// 模板sequelize.define('表名', {}, {})
const User = sequelize.define(
    'first', {
        id: {
            field: 'id',
            primaryKey: true,
            type: Sequelize.INTEGER,
            allowNull: false
        },
        name: {
            field: 'name',
            primaryKey: true,
            type: Sequelize.STRING,
            allowNull: false
        },
        password: {
            field: 'password',
            primaryKey: true,
            type: Sequelize.STRING,
            allowNull: false
        }
    }, {
        tableName: 'first',
        timestamps: false,
        freezeTableName: true
    }
)

// 往數據庫添加單條數據
User.create({
    id: 1,
    name: 'test1',
    password: '123456'
})

// // 往數據庫添加數據多條數據   遍歷
// const addData = [{
//         id: 5,
//         name: 'yang5',
//         password: '123456'
//     },
//     {
//         id: 6,
//         name: 'yang6',
//         password: '123456'
//     }
// ]

// for (let i = 0; i < addData.length; i++) {
//     User.create({
//         id: addData[i].id,
//         name: addData[i].name,
//         password: addData[i].password
//     })
// }

// 修改往數據庫數據(通過id去修改name或者password)
// User.update({
//     'name': 'test2'
// }, {
//     'where': { 'id': 1 }
// })

// 刪除數據庫中某條數據
// User.destroy({
//     'where': {
//         'id': 1
//     }
// })

// 查詢所有
User.findAll().then((res) => {
    console.log(res)
})

// 查詢單條
User.findOne({
    'where': {
        'id': 1
    }
}).then(res => {
    console.log(res)
})

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM