Sequelize 是 Node.js 中一个流行的 ORM 框架,它能够简化数据库操作,并提供了简单易用的 API 接口。在使用 Sequelize 进行数据库操作时,我们需要创建一个 Sequelize 实例对象,然后通过该实例对象进行数据库访问和操作。
本文将介绍 Sequelize 实例对象操作的相关内容,包括 Sequelize 实例对象的创建、常用实例对象方法的使用等,希望能够帮助读者更好地理解和使用 Sequelize。
创建 Sequelize 实例对象
在使用 Sequelize 进行数据库访问和操作之前,我们需要先创建一个 Sequelize 实例对象,并在创建实例对象时设置相关参数,包括数据库连接信息、日志记录、时间戳等。
-- -------------------- ---- ------- ----- ----------- - --------------------- ----- --------- - --- --------------------- ----------- ----------- - ----- ------------ -------- -------- -------- ------ ------- - ----------- ----- - ---
在上述代码中,我们通过调用 Sequelize 构造函数创建了一个 Sequelize 实例对象,其中,“database”、“username”、“password”、“localhost”、“mysql”等参数为实际情况而定,读者可以根据自己的数据库设置自行更改。
实例对象方法的使用
接下来,我们介绍 Sequelize 实例对象的常用方法,包括增删改查、事务管理、模型定义等。
简单查询
Sequelize 提供了多种查询方法,其中最常见的是 findAll()
和 findOne()
方法。findAll()
方法用于查询满足条件的所有记录,而 findOne()
方法则用于查询满足条件的单条记录。
const users = await UserModel.findAll({ where: {age: {[Op.lt]: 18}} }); const user = await UserModel.findOne({where: {name: 'Tom'}});
在上述代码中,我们首先通过 findAll()
方法查询了所有年龄小于 18 岁的用户,然后通过 findOne()
方法查询了名字为 Tom 的用户。
简单增删改
在进行增删改操作时,我们可以通过实例对象的 create()
、destroy()
、update()
方法进行操作。其中,create()
方法用于新增一条记录,destroy()
方法用于删除一条记录,update()
方法用于更新一条记录。
const user = await UserModel.create({name: 'Tom', age: 18}); await UserModel.destroy({where: {age: {[Op.gte]: 20}}}); await UserModel.update({age: 30}, {where: {id: 1}});
在上述代码中,我们首先通过 create()
方法新增了一个年龄为 18 的用户,然后通过 destroy()
方法删除了所有年龄大于等于 20 的用户,最后通过 update()
方法将 id 为 1 的用户的年龄更新为 30。
事务管理
Sequelize 支持事务管理,我们可以通过 Sequelize 实例对象的 transaction()
方法来开启一个事务,并使用该事务进行相关操作。在事务中进行的所有操作,要么全部成功,要么全部失败。
await sequelize.transaction(async (t) => { await UserModel.create({name: 'Tom', age: 18}, {transaction: t}); await UserModel.destroy({where: {age: {[Op.gte]: 20}}}, {transaction: t}); await UserModel.update({age: 30}, {where: {id: 1}}, {transaction: t}); }, {isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.READ_COMMITTED});
在上述代码中,我们通过 sequelize.transaction()
方法开启了一个事务,并在该事务中进行了新增、删除、更新操作。注意,每个操作都必须传递事务实例对象作为参数,并在事务的回调函数中进行操作。
模型定义
在使用 Sequelize 进行数据库操作时,我们首先需要定义 Sequelize 模型,即定义数据表的结构、字段名、数据类型等相关信息。
-- -------------------- ---- ------- ----- ----------- ------ - --------------------- ----- --------- ------- ----- -- ---------------- --- - ----- ------------------ ----------- ----- -------------- ---- -- ----- ----------------- ---- ----------------- -- ----------- ---------- ----------
在上述代码中,我们通过调用 Model.init()
方法定义了一个名为 UserModel 的 Sequelize 模型。其中,id
字段为主键、自增类型的整型,name
字段为字符串类型,age
字段为整型类型。参数 {sequelize, modelName: 'users'}
表示该模型关联了之前创建的 Sequelize 实例对象,并将对应的数据表名称设置为 'users'。
总结
本文介绍了 Sequelize 实例对象操作的相关内容,包括 Sequelize 实例对象的创建、常用实例对象方法的使用、事务管理、模型定义等。通过学习本文,读者可以更好地理解和使用 Sequelize,提高自己的 Node.js 开发技能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64768fe5968c7c53b033e867