在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
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数据库之增删改查相关推荐
- 2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理
Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan ...
- node.js + sequelize 操作 MySQL 数据库
Node.js + Sequelize 操作 MySQL 数据库 一. Sequelize 简介 二. 基本操作 1. 连接数据库 2. 创建一张表 3. 对数据表操作 3.1 插入操作 3.2 读取 ...
- 基于Python Flask框架+jquery Ajax技术实现的增删改查(CRUD)+Ajax的异步文件上传
运行界面(话不多说先上图) 运行之后的index界面,有登陆.注册功能 登陆界面,输入数据库中用户名.密码不为空且密码是加密的数据,进入main界面 注册界面,用的bootstrop的弹窗,用户名和密 ...
- 欢迎来到Jsp编程课时十二——今天实现的目标是。@1将数据库的数据发送到浏览器。@2利用浏览器实现对数据库的增删改查操作。@3理解MVC三层架构的定义。
完成项目会有以下的效果. JSP第二十课:Mvc+Mysql+Servlect+Jsp实现在浏览器上对数据库的增删改查. MVC全名是Model View Controller, 是 @@1模型(mo ...
- java中的数组增删查改操作,java数组实现增删改查
java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...
- 动态网站作业4-JSP中实现数据库的增删改查的操作
动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...
- java对数据库的增删改查_在java中对数据库进行增删改查
代码区域: package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; impo ...
- 使用eclipse创建基于SSM+Maven的小项目(简单的增删改查)
使用eclipse创建基于SSM+Maven的增删改查 开发环境 效果图 数据库 项目如下: 项目结构及pom.xml 资源文件夹 db.properties mybatis-config.xml a ...
- boot spring 接口接收数据_基于 Spring Boot 实现 Restful 风格接口,实现增删改查功能...
优质文章,及时送达 Spring Boot介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配 ...
最新文章
- 【中文字幕】加州理工《数据学习:机器学习课程》视频及ppt分享
- Weblogic 集群部署说明 --转
- 操作系统安装与优化:chapter8 虚拟机
- 微信小程序 保存持久化cookie
- SAP CRM WebClient UI how to disable excel export
- python 代码文件路径注意事项
- slope one算法matlab,求助我这个寻峰算法该怎么提高灵敏度
- 【更新】ReSharper v2018.3发布
- iOS Charles(青花瓷)安装
- android微信配色,万能微信公众号配色模板(神仙配色太好看了)
- TPT中脚本评估的正确打开方式 (上):强大的内置函数库
- mysql中长整型是longint_整型int和长整型long
- C++中未定义标识符ULONG,UINT的报错解决方法 VS2019
- Java中的boolean类型
- 什么是安全沙箱技术?如何评估应用程序安全性?
- 什么是服务器丢包?恒讯科技教你如何解决
- 男主龙失忆java_不容错过的3本男主失忆文:我忘记了以前的所有,却从未忘记爱你...
- 基于Struts2+MySQL的多表出差明细表单
- 计算机文档翻页怎么设置,Word文档如何设置自动翻页?
- Wave Driver介绍-5(Waveform Audio Driver Test测试Case描述)
热门文章
- 2022-2028年中国钢桶行业市场研究及前瞻分析报告
- 由动态规划计算编辑距离引发的思考
- 生成树计数Matrix-Tree定理-数学
- TVM性能评估分析(六)
- 客快物流大数据项目(五十六): 编写SparkSession对象工具类
- 2021年大数据ELK(十三):Elasticsearch编程(添加职位数据)
- 2021年大数据Hive(九):Hive的数据压缩
- 中文版证书_CIA考试多久后才可以领取证书?领取的方式是什么?
- Ubuntu系统创建AndroidStudio启动图标(快捷方式)
- Android studio 文件包名连在一起的处理方法