日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

發(fā)布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Sequelize是一個基于promise的關(guān)系型數(shù)據(jù)庫ORM框架,這個庫完全采用JavaScript開發(fā)并且能夠用在Node.JS環(huán)境中,易于使用,支持多SQL方言(dialect),。它當前支持MySQL,、MariaDB、SQLite、PostgreSQL、Sql Server 數(shù)據(jù)庫。

目前在Node.js中,Sequelize的關(guān)注度較高,用的也較多。

因為是基于promise規(guī)范,在調(diào)用后的處理上不再是callback方式,而是統(tǒng)一的鏈式調(diào)用方式,調(diào)用直觀,易讀。

那么就先用起來吧,雖然還有很多坑,但互聯(lián)網(wǎng)上開源的東西有哪個是讓人特別省心的呢,是個好東西就用吧,碰到坑也只能用人肉去填了,(^-^)。

?

安裝

建個工程文件夾,并進入,在命令行中運行安裝sequelize命令。

npm install sequelize

安裝mysql

npm install mysql

?

創(chuàng)建sequelize對象

在代碼頂部先要把sequelize庫require進來。

第一個參數(shù)'test1' 是數(shù)據(jù)庫名。

第二個參數(shù)'root'是登錄用戶名。

第三個參數(shù)'123456'是登錄用戶對應的密碼。

第四個參數(shù):

host:數(shù)據(jù)庫主機地址

dialect:'mysql'|'sqlite'|'postgres'|'mssql'

var Sequelize = require('sequelize');var sequelize = new Sequelize('test1', 'root', '123456', {host: '172.16.16.138',dialect: 'mysql'
});

?

表結(jié)構(gòu)

在mysql的test1數(shù)據(jù)庫中建users表。

?

創(chuàng)建表對應的對象模型

一條記錄對應一個User對象。

var User = sequelize.define('user', {name: Sequelize.STRING,password: Sequelize.STRING,mail: Sequelize.STRING
});

?

插入記錄

調(diào)用模型對象的create方法插入一條user記錄。

通過promise的方式對插入完成和插入失敗進行處理,鏈式調(diào)用非常方便,再也看不到callback了。

User.create({name: 'XiaoMing',password: '1234567890',mail: 'xiaoming@qq.com'
}).then(function(result){console.log('inserted XiaoMing ok');
}).catch(function(err){console.log('inserted XiaoMing error');console.log(err.message);
});

?

查詢記錄

調(diào)用模型對象的findAll方法進行查詢操作,在參數(shù)中可以制定where條件。

where條件甚至可以支持數(shù)據(jù)庫自身特有的函數(shù)。

where具體寫法,參考:http://sequelize.readthedocs.io/en/latest/docs/querying/

    User.findAll({where:{name:{$like:'Zhang%'}}}).then(function(result){console.log('query all users');for (var i = 0, usr; usr = result[i++];) {console.log('nae=' + usr.name + ', password=' + usr.password + ', mail=' + usr.mail);}});

?

修改記錄

調(diào)用模型對象的update方法進行更新操作,在第一個參數(shù)中指定更新的字段和值,在第二個參數(shù)中指定條件。

User.update({password:'12'
},{where:{name:{$like:'Xiao%'}}
}).then(function(result){console.log('updated user');console.log(result);
});

?

刪除記錄

調(diào)用模型對象的destroy方法進行刪除操作,在參數(shù)中指定刪除條件。

User.destroy({where:{name:{$like:'Zhang%'}}
}).then(function(result){console.log('destroy user');console.log(result);
});

?

官方文檔:戳

轉(zhuǎn)載于:https://www.cnblogs.com/kongxianghai/p/5582661.html

總結(jié)

以上是生活随笔為你收集整理的在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。