Sequelize 是一个 Node.js ORM,支持多种数据库,其中包括 Oracle 数据库。本文将介绍如何使用 Sequelize 来连接和操作 Oracle 数据库。
准备工作
安装 Sequelize:可以通过 npm 来安装 sequelize 和 sequelize-cli:
npm install sequelize sequelize-cli
安装 Oracle 客户端驱动程序:由于 Sequelize 并不自带对 Oracle 数据库的支持,需要安装对应的客户端驱动程序。
目前有两个可用的驱动:
- oracledb:Oracle 官方提供的连接驱动,需要预先安装 Oracle 客户端,支持大部分功能,但安装比较繁琐。
- simple-oracledb:一个使用基于 JavaScript 实现的 Oracle 客户端的 Sequelize 插件,简单易用,不需要额外安装 Oracle 客户端。
在本文中我们将使用 simple-oracledb。
npm install simple-oracledb
准备 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,我们可以轻松进行增删改查等操作。
添加数据
// 添加一条数据 await User.create({ id: 1, name: '张三', age: 18 }); // 添加多条数据 await User.bulkCreate([ { id: 2, name: '李四', age: 20 }, { id: 3, name: '王五', age: 22 }, ]);
通过 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