ORM之Sequelize操作MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ORM之Sequelize操作MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2073字,纯文字阅读大概需要3分钟。
内容图文
![ORM之Sequelize操作MySQL](/upload/InfoBanner/zyjiaocheng/916/aaed725d8c454dbe99be08aad97d69ed.jpg)
- Sequelize
- 基于Promise的ORM
- 用于操作MySQL,Postgres,SQLite,sqlserver等关系型数据库
- 所有的结果集都是Promsie对象,不能直接读取结果
- 连接数据库初始化时,会创建连接池,该池会创建和管理一个连接和缓冲技术
- 定义模型
sequelize.define('name', {attributes}, {options})
定义表结构得到User对象- User.sync() 创建表
- User.create() 添加数据,User.findOne() 查找数据
依赖包 sequelize mysql2
- 数据库连接
// db.js
var Sequelize = require('sequelize')
// 入口主类
var sequelize = new Sequelize('node_sequelize', 'root', null, {
host: 'localhost',
dialect: 'mysql',
pool: {
// 连接池中最大连接数量
max: 5,
min: 0,
// 单位毫秒,如果一个线程10秒内没有被使用,释放线程
idle: 10000
}
})
// 通过uri连接数据库
var sequelize = new Sequelize('mysql://localhost:3306/node_sequelize', {
dialect: 'mysql',
useranme: 'root',
password: ''
})
module.exports = new Sequelize('node_sequelize', 'root', null, {
host: '127.0.0.1',
dialect: 'mysql',
// 关闭废弃别名操作提示
operatorsAliases: false,
pool: {
max: 5,
min: 0,
idle: 10000
}
})
- 模型
// user.js
var Sequelize = require('sequelize')
var sequelize = require('./db')
// 创建表结构模型
var User = sequelize.define('user', {
userName: {
// 数据类型
type: Sequelize.STRING,
// 建立键与数据表中的字段映射关系
field: 'user_name'
},
email: {
// 未指定field字段,则键名与存储表中字段一致
type: Sequelize.STRING
}
}, {
// 如果为true,则表名称和model相同,即为user
// 为false,mysql创建的表名称会是复数users
// 若指定的表名称本身是复数,则不变
freezeTableName: false
})
// 创建表,返回一个Promise对象
// force=true 如果表已经存在,将会丢弃表
// 默认情况下为false
var user = User.sync({
force: false
})
// 添加新用户
exports.addUser = function (userName, email) {
// 向user表中添加数据
return User.create({
userName,
email
})
}
// 通过用户名查找用户
exports.findByName = function (userName) {
return User.findOne({
where: {
userName
}
})
}
- 测试
// testUser.js
var user = require('./user')
// 添加用户
user.addUser('jack', 'jack@163.com').then(function () {
// 查询新添加的用户
return user.findByName('jack')
}).then(function (user) {
console.log('***********')
console.log('user name: ', user.userName)
console.log('user email: ', user.email)
})
内容总结
以上是互联网集市为您收集整理的ORM之Sequelize操作MySQL全部内容,希望文章能够帮你解决ORM之Sequelize操作MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。