使用 Sequelize 操作 Oracle 数据库的方式详解

阅读时长 7 分钟读完

Sequelize 是一个 Node.js ORM,支持多种数据库,其中包括 Oracle 数据库。本文将介绍如何使用 Sequelize 来连接和操作 Oracle 数据库。

准备工作

  1. 安装 Sequelize:可以通过 npm 来安装 sequelize 和 sequelize-cli:

  2. 安装 Oracle 客户端驱动程序:由于 Sequelize 并不自带对 Oracle 数据库的支持,需要安装对应的客户端驱动程序。

    目前有两个可用的驱动:

    • oracledb:Oracle 官方提供的连接驱动,需要预先安装 Oracle 客户端,支持大部分功能,但安装比较繁琐。
    • simple-oracledb:一个使用基于 JavaScript 实现的 Oracle 客户端的 Sequelize 插件,简单易用,不需要额外安装 Oracle 客户端。

    在本文中我们将使用 simple-oracledb。

  3. 准备 Oracle 数据库环境:在本地或者远程搭建一个 Oracle 数据库实例,创建一个测试数据库和一张表,以便后续测试。

连接数据库

在 Sequelize 中,建立与 Oracle 数据库的连接需要一些必要的参数。下面是一个连接 Oracle 数据库的示例代码:

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

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

----- -------------------------
----------------------- --- ---- ----------- ----------------
展开代码

在建立连接时,参数的详细说明如下:

  • dialect:指定使用的数据库类型,需要设置为 'oracle'。
  • database:指定连接的数据库名称。
  • username:指定连接的用户名。
  • password:指定连接的密码。
  • host:指定连接的主机名。
  • port:指定连接的端口号。
  • dialectModule:指定使用的 Oracle 驱动程序,这里我们使用 simple-oracledb。

定义模型

在 Sequelize 中,我们可以使用模型(Model)来访问数据库表。每个模型都对应一个数据库表,可以通过模型来进行增删改查等操作。

定义模型需要一个 Sequelize 实例,下面是一个示例:

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

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

-- -----------------------------
----- ------------
展开代码

在定义模型时,我们需要给出表的结构和一些配置,包括:

  • name:指定模型名称,也就是底层表的名称。
  • 表结构定义:每个字段对应一个属性,包括字段名称、类型、是否允许为空等信息。这里我们使用了 DataTypes 枚举类来定义。
  • timestamps:是否需要定义 createdAt 和 updatedAt 字段,默认为 true。

定义好模型后,可以使用sync()方法来同步模型结构和数据库结构。如果数据库表结构不存在,则会自动创建。

CRUD 操作

使用 Sequelize,我们可以轻松进行增删改查等操作。

添加数据

通过 create 和 bulkCreate 方法可以添加一条或多条数据。在添加数据时,需要传入一个对象或一个数组,包含数据表中的每一列数据。

查询数据

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

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

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

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

-- ----
----- ---------- - ----- --------------
  ------- ---
  ------ --
---
展开代码

通过 Sequelize 的模型对象,我们可以使用 findAll 和 findOne 方法查询数据。在查询时,我们可以给定一些条件,如年龄小于 22 的用户,通过 where 字段传递给 findAll 和 findOne 方法。

为了进一步控制查询结果,我们还可以使用 order 和 limit 选项,如排序查询和分页查询。

更新数据

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

-- -------
----- ------------- ---- -- -- -
  ------ -
    ---- -
      -------- ---
    --
  --
---
展开代码

使用 update 方法可以更新一条或多条数据。在更新时,我们可以给定更新后的数据,以及更新的条件。

删除数据

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

-- -------
----- --------------
  ------ -
    ---- -
      -------- ---
    --
  --
---
展开代码

使用 destroy 方法可以删除一条或多条数据。在删除时,我们需要给定删除的条件。

总结

本文介绍了使用 Sequelize 来连接和操作 Oracle 数据库的方法,并使用了一个示例代码演示了如何进行 CRUD 操作。Sequelize 提供了良好的封装和 API,方便开发者在 Node.js 中操作不同类型的数据库。

代码中涉及到的数据库操作是必要而常见的,相信掌握后一定会在工作中提供大有帮助。

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

纠错
反馈

纠错反馈