Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),。它当前支持MySQL,、MariaDB、SQLite、PostgreSQL、Sql Server 数据库。

目前在Node.js中,Sequelize的关注度较高,用的也较多。

因为是基于promise规范,在调用后的处理上不再是callback方式,而是统一的链式调用方式,调用直观,易读。

那么就先用起来吧,虽然还有很多坑,但互联网上开源的东西有哪个是让人特别省心的呢,是个好东西就用吧,碰到坑也只能用人肉去填了,(^-^)。

安装

建个工程文件夹,并进入,在命令行中运行安装sequelize命令。

npm install sequelize

安装mysql

npm install mysql

创建sequelize对象

在代码顶部先要把sequelize库require进来。

第一个参数'test1' 是数据库名。

第二个参数'root'是登录用户名。

第三个参数'123456'是登录用户对应的密码。

第四个参数:

host:数据库主机地址

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

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

表结构

在mysql的test1数据库中建users表。

创建表对应的对象模型

一条记录对应一个User对象。

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

插入记录

调用模型对象的create方法插入一条user记录。

通过promise的方式对插入完成和插入失败进行处理,链式调用非常方便,再也看不到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);
});

查询记录

调用模型对象的findAll方法进行查询操作,在参数中可以制定where条件。

where条件甚至可以支持数据库自身特有的函数。

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);}});

修改记录

调用模型对象的update方法进行更新操作,在第一个参数中指定更新的字段和值,在第二个参数中指定条件。

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

删除记录

调用模型对象的destroy方法进行删除操作,在参数中指定删除条件。

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

官方文档:戳

转载于:https://www.cnblogs.com/kongxianghai/p/5582661.html

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

  1. 2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

     Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan ...

  2. node.js + sequelize 操作 MySQL 数据库

    Node.js + Sequelize 操作 MySQL 数据库 一. Sequelize 简介 二. 基本操作 1. 连接数据库 2. 创建一张表 3. 对数据表操作 3.1 插入操作 3.2 读取 ...

  3. 基于Python Flask框架+jquery Ajax技术实现的增删改查(CRUD)+Ajax的异步文件上传

    运行界面(话不多说先上图) 运行之后的index界面,有登陆.注册功能 登陆界面,输入数据库中用户名.密码不为空且密码是加密的数据,进入main界面 注册界面,用的bootstrop的弹窗,用户名和密 ...

  4. 欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。

    完成项目会有以下的效果. JSP第二十课:Mvc+Mysql+Servlect+Jsp实现在浏览器上对数据库的增删改查. MVC全名是Model View Controller, 是 @@1模型(mo ...

  5. java中的数组增删查改操作,java数组实现增删改查

    java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...

  6. 动态网站作业4-JSP中实现数据库的增删改查的操作

    动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...

  7. java对数据库的增删改查_在java中对数据库进行增删改查

    代码区域: package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; impo ...

  8. 使用eclipse创建基于SSM+Maven的小项目(简单的增删改查)

    使用eclipse创建基于SSM+Maven的增删改查 开发环境 效果图 数据库 项目如下: 项目结构及pom.xml 资源文件夹 db.properties mybatis-config.xml a ...

  9. boot spring 接口接收数据_基于 Spring Boot 实现 Restful 风格接口,实现增删改查功能...

    优质文章,及时送达 Spring Boot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配 ...

最新文章

  1. 【中文字幕】加州理工《数据学习:机器学习课程》视频及ppt分享
  2. Weblogic 集群部署说明 --转
  3. 操作系统安装与优化:chapter8 虚拟机
  4. 微信小程序 保存持久化cookie
  5. SAP CRM WebClient UI how to disable excel export
  6. python 代码文件路径注意事项
  7. slope one算法matlab,求助我这个寻峰算法该怎么提高灵敏度
  8. 【更新】ReSharper v2018.3发布
  9. iOS Charles(青花瓷)安装
  10. android微信配色,万能微信公众号配色模板(神仙配色太好看了)
  11. TPT中脚本评估的正确打开方式 (上):强大的内置函数库
  12. mysql中长整型是longint_整型int和长整型long
  13. C++中未定义标识符ULONG,UINT的报错解决方法 VS2019
  14. Java中的boolean类型
  15. 什么是安全沙箱技术?如何评估应用程序安全性?
  16. 什么是服务器丢包?恒讯科技教你如何解决
  17. 男主龙失忆java_不容错过的3本男主失忆文:我忘记了以前的所有,却从未忘记爱你...
  18. 基于Struts2+MySQL的多表出差明细表单
  19. 计算机文档翻页怎么设置,Word文档如何设置自动翻页?
  20. Wave Driver介绍-5(Waveform Audio Driver Test测试Case描述)

热门文章

  1. 2022-2028年中国钢桶行业市场研究及前瞻分析报告
  2. 由动态规划计算编辑距离引发的思考
  3. 生成树计数Matrix-Tree定理-数学
  4. TVM性能评估分析(六)
  5. 客快物流大数据项目(五十六): 编写SparkSession对象工具类
  6. 2021年大数据ELK(十三):Elasticsearch编程(添加职位数据)
  7. 2021年大数据Hive(九):Hive的数据压缩
  8. 中文版证书_CIA考试多久后才可以领取证书?领取的方式是什么?
  9. Ubuntu系统创建AndroidStudio启动图标(快捷方式)
  10. Android studio 文件包名连在一起的处理方法