Sequelize 之 ORM 基础

阅读时长 6 分钟读完

什么是 ORM?

ORM(Object Relational Mapping,对象关系映射)是一种将对象和关系数据库之间的映射进行转换的技术。简单来说,它可以把关系型数据库的数据转换成对象,然后以面向对象的方式进行操作和处理。

ORM 工具可以让开发者可以用面向对象的方式操作数据库。通常它包括操作数据库的几个部分:操作数据、存储数据和查询数据。

Sequelize 简介

Sequelize 是一个基于 Promise 实现的 Node.js ORM,支持 PostgreSQL、MySQL、SQLite 和 MSSQL。它提供了大量的异步 API,使得针对以上这些关系型数据库的操作变得更加简单和可靠。

Sequelize 支持多种数据类型,并提供了多列索引、复合键、虚拟列等常用的数据库特性。它提供了丰富的查询查询语言(Query Language,简称为 DSL),适合零散、复杂的数据应用,也能应对企业级应用。该库的文档也十分详细,使用者可以在文档中找到如何使用这个库进行开发和维护。

如何使用 Sequelize

安装和初始化

要使用 Sequelize,首先需要在本地安装它。在控制台中输入以下命令:

安装完成后,可以使用以下方法初始化 Sequelize。

sequelize 构造函数的第一个参数是要连接的数据库的名称,第二个参数是用户名,第三个参数是密码,第四个参数是有关数据库特性的选项 (例如 dialect )。在上述代码的第四个参数中选择了 MySQL。Sequelize 支持的选项包括:

  • dialect: 选择数据库类型 (除了 PostgreSQL,还有 MySQL、SQLite、MSSQL、MariaDB 和 Oracle)。
  • pool:定义连接池 (连接池大小、最大连接数等) 。
  • host:设置数据库的主机名,如果是本地的话可以使用 localhost。
  • port:设置数据库的端口号。
  • logging:是否打印日志。如果您想详细了解查询日志,可以将其设置为 console.log。
  • define:一些全局模型默认选项,可以使用此选项设置。

创建模型

在 Sequelize 中,通过使用 Sequelize.Model 定义模型。每个模型都必须有字符串名称,在消息表格示例中是 Message。我们也需要确定表名,这里是 messages。

Sequelize 会为我们自动生成主键 (名为 id 的整数)。在上述代码中,我们定义了 Message 模型和其对应的数据表。

数据的操作

对于大部分的数据操作,在 Sequelize 中都有相应的API进行操作。(例如数据查询、增、删、改)。在本篇文章中,为了说明问题,我们只舍取部分方法来做演示。包括 createfindAllfindOneupdatedestroy 等。

创建记录:

-- -------------------- ---- -------
---------------
  -
    ------ --------
    ----- ----- ------
  --
  -
    ------- --------- --------
  -
--------------- -- ---------------------------

读取一条记录:

查询多条记录:

更新一条记录:

-- -------------------- ---- -------
---------------
  -
    ----- ------- ------
  --
  -
    ------ -
      ------ ------- -------
    --
  -
--

删除记录:

操作事务

Sequelize 设计了完整的事务 API,支持单个和区块事务等的各种事务类型。

在 Sequelize 中,可以使用 sequelize.transaction() 方法进行事务的操作,其语法如下:

-- -------------------- ---- -------
---------
---------------- --
  -- ----------- --------
  -------------
    -- ------ ------- - ---------
  ---------- -- -
    ------ -------------
        -- ------ ------- - ---------
    ---
  --
-

在事务处理中,可以执行多次操作,当执行过程中出现异常时,事务回滚并撤销先前完成的所有操作。下面是一个使用事务的例子。

-- -------------------- ---- -------
------------------------------ --- -
  -- ---------
  ------ ------------
    -
      ---------- ----------
      --------- ---------
    --
    - ------------ - -
  -
    -------------- ------ -
      -- -------------- ---------------
      ------ ----------------- ------ ----- -- - ------------ - ---
    --
    -------------- -- -
      -- ----------------------
      -----------
    --
    --------------- ----- -
      -- -------------------------------------
      -----------------
      -------------
    ---
---

总结

本篇文章中概述了 Sequelize 的基本知识。我们详细讲述了如何定义模型,并描述了如何使用 API 进行操作。

需要注意的是,Sequelize 并不仅仅支持本文中仅仅介绍的 CRUD 操作。它还提供了其他许多高级功能,例如ORM和事务处理,如果你需要更多的帮助,建议查看文档。

通过本篇文章我们可以看出,Sequelize 是一个非常强大和便于使用的 ORM 库。它支持众多数据库类型,并且提供了许多高级功能。

在进行项目开发时,使用 Sequelize 库可以显著减少工作量,提高代码的可读性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6481cd9b48841e9894147760

纠错
反馈