sequelize 基本操作

Sequelize 是 Node 的一个 ORM(Object-Relational Mapping) 框架,用来方便数据库操作。

配置 sequelize

 

以 mysql 为例

首先我们要引入npm包,sequelize 依赖 mysql2 作为底层驱动,暴露出自己的 API 让我们调用,在转成 mysql 语句进行执行。

"mysql2": "^1.5.1",
"sequelize": "^4.28.6"
const Sequelize = require('sequelize') // 连接数据库 const sequelize = new Sequelize('database', 'username', 'password', { host: sqlconf.host, dialect: 'mysql', // 这里可以改成任意一种关系型数据库 pool: { max: 5, min: 0, acquire: 30000, idle: 10000, }, }) // 测试连接是否成功 sequelize .authenticate() .then(() => { console.log('Connection has been established successfully.') }) .catch(err => { console.log('Unable to connect to the database', err) }) // 根据 model自动创建表 sequelize .sync() .then(() => { console.log('init db ok') }) .catch(err => { console.log('init db error', err) })

我们可以调用sync()根据 model自动在数据库中创建表,也可以不调用,自己手动创。如果使用了 Sequelize 的 Associations,这必须通过 sync() 生成表结构。

创建 model

创建模型,告诉 Sequelize 如何映射数据库表

const UserModel = sequelize.define('user', { id: { type: Sequelize.INTEGER(11), primaryKey: true, // 主键 autoIncrement: true, // 自动递增 }, username: Sequelize.STRING(100), password: Sequelize.STRING(100), createdAt: Sequelize.BIGINT, updatedAt: Sequelize.BIGINT, }, { timestamps: false })

define() 方法的第一个参数为表名,对应的是 users 表。如果不设置 timestamps,Sequlize 会自动为我们添加创建时间和更新时间,我一般选择关闭,手动添加灵活性高些。

增删改查

(async () => {
  const now = Date.now() const user = await UserModel.create({ username: '小张', password: 'root', createAt: now, updateAt: now, }) console.log('创建:' + JSON.stringify(user)) })();

(async () => {
  // 查找所有 const allUser = await UserModel.findAll() // 按id查找 const oneUser = await UserModel.findById(id) // 按条件查询 const someUser = await UserModel.findAll({ where: { // 模糊查询 name: { $like: '%小%', }, // 精确查询 password: 'root', } }) // 分页查询 const size = 10 // 每页10条数据 const page = 1 // 页数 const pageUser = await UserModel.findAndCountAll({ where: { name: { $like: '%小%', }, }, limit: size, offset: size * (page - 1), }) })();

(async () => {
// 方法一 await UserModel.upert(data) // data 里面如果带有 id 则更新,不带则新建 // 方法二 const user = await UserModel.findById(id) user.update(data) })()

(async () => {
// 方法一 // 删除所有名字带’小‘的用户 await UserModel.destroy({ where: { username: '小', }, }) // 方法二 const user = await UserModel.findById(id) user.destroy() })()

转载于:https://www.cnblogs.com/amujoe/p/9983385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sequelize是一个Node.js ORM(Object-Relational Mapping)框架,可以用来操作多种数据库,包括MySQL。下面是使用Sequelize操作MySQL数据库的基本步骤: 1. 安装Sequelize和MySQL驱动程序: ``` npm install --save sequelize mysql2 ``` 2. 创建Sequelize实例: ```javascript const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' }); ``` 其中,`database`是数据库名称,`username`和`password`是登录MySQL的用户名和密码,`localhost`是MySQL服务器地址,`dialect`指定数据库类型为MySQL。 3. 定义模型: ```javascript const User = sequelize.define('user', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: Sequelize.STRING }, age: { type: Sequelize.INTEGER } }); ``` 这里定义了一个名为`user`的模型,包含`id`、`name`和`age`三个字段。 4. 同步模型到数据库: ```javascript sequelize.sync() .then(() => { console.log('Database and tables created!'); }); ``` 这会在MySQL数据库中创建名为`user`的表。 5. 执行CRUD操作: ```javascript // 创建一条记录 User.create({ name: 'Alice', age: 25 }).then(user => { console.log(user.toJSON()); }); // 查询所有记录 User.findAll().then(users => { console.log(users.map(u => u.toJSON())); }); // 更新一条记录 User.update({ age: 26 }, { where: { name: 'Alice' } }).then(() => { console.log('Record updated!'); }); // 删除一条记录 User.destroy({ where: { name: 'Alice' } }).then(() => { console.log('Record deleted!'); }); ``` 这里演示了创建、查询、更新和删除操作。根据需要,可以使用更多Sequelize提供的方法来执行复杂的数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值