随着 Deno 的逐渐普及和应用场景的不断拓展,其中 ORM 编程也越来越受到前端开发者的重视。在项目开发中,ORM 可以帮助开发人员更方便地进行数据库操作,进而提高开发效率和质量。本文将介绍如何在 Deno 中进行 ORM 编程,以及如何使用第三方的 Deno 遵循 ORM 规范的库来简化开发。
什么是 ORM?
首先,我们需要了解什么是 ORM。ORM 全称为 Object-Relational Mapping,指的是一种通过将数据库表和操作转化为对象和方法的方式来操作数据库的技术。ORM 可以将 SQL 语句和数据库操作进行抽象和封装,以便开发人员更方便地进行 CRUD 操作。
Deno 中的 ORM
在 Deno 中开发过程中,我们需要使用一些专门针对 Deno 平台的 ORM 库。目前,以下几个库是比较流行和广泛使用的:
- OakOrm
- Denodb
- Dex
其中,OakOrm 是基于 Oak Web 框架,而 Denodb 则是基于 Deno 标准库的。Dex 则是一个轻量、灵活的 ORM 库,支持多种类型的数据库。本文重点介绍使用 Denodb 和 Dex 进行 ORM 编程的方法。
使用 Denodb 进行 ORM 编程
安装 Denodb
使用 Denodb 进行 ORM 编程需要先安装 Denodb:
# 使用 deno 安装 Denodb 执行的命令 deno install --unstable --allow-net --allow-env --name=denodb https://deno.land/x/denodb/cli.ts
创建数据库连接
在使用 Denodb 进行 ORM 编程的时候,需要先进行数据库连接:
import { Database, SQLite3Connector } from "https://deno.land/x/denodb/mod.ts"; const connector = new SQLite3Connector({ filepath: './mydb.sqlite', }); const db = new Database(connector);
创建 Model
在 Denodb 中,Model 是指代表数据库表的类。每个 Model 类都必须定义一个 tableName()
方法来指定它所对应的数据库表名。另外,定义一个 fields()
方法用于指定该 Model 中包含哪些字段。
-- -------------------- ---- ------- ------ - ---------- ----- - ---- ------------------------------------ ----- ---- ------- ----- - ------ ----- - -------- ------ --------- - ----- ------ ------ - - --- - ----------- ----- -------------- ---- -- --------- ----------------- --------- ----------------- -- ------ -------- - - --------- --------- -- ------ ----- ----------------------- ------- - ------ ----- ---------------------- ------------------ - - ------ ------- -----
查询数据
使用 Denodb 进行数据查询和操作的方式和 SQL 相似。例如,获取 users 表中所有 username 为 alice 的数据:
const result = await User.select().where("username", "alice").get();
插入数据
插入数据也很简单,通过 Model 的 create()
方法插入数据:
const result = await User.create({ username: "bob", password: "123456" });
使用 Dex 进行 ORM 编程
安装 Dex
使用 Dex 进行 ORM 编程需要先安装 Dex:
# 使用 deno 安装 Dex 执行的命令 deno install --allow-read --allow-net -n dex https://deno.land/x/dex/cli.ts
创建数据库连接
在使用 Dex 进行 ORM 编程的时候,需要先进行数据库连接:
-- -------------------- ---- ------- ------ --- ---- --------------------------------- ------ - -------- - ---- --------------------------------- ----- --- - ----- ------- -------- ----------- - ----- ------------ ----- ------- --------- --- --------- ------- -- --- ----- -- - --- --------------
创建 Table 和 Model
在 Dex 中,使用 create()
方法创建 Table:
const createTableQuery = dex.schema.createTable("users", (table) => { table.increments(); table.string("username"); table.string("password"); }) .toString();
使用 db.query()
方法执行 SQL 语句:
await db.query(createTableQuery);
使用 Model
定义创建的表:
-- -------------------- ---- ------- ------ - ---------- ------ - ---- --------------------------------- ----- ---- ------- --------- - ------ ------ ----- - -------- --------- ---------- ---- -- ------ ---- ------- --------- ------ ---------- ------- --------- ------ ---------- ------- -
查询数据
使用 Dex 进行数据查询和操作的方式和 SQL 相似。例如,获取 users 表中所有 username 为 alice 的数据:
const result = await User.query().where("username", "alice");
插入数据
插入数据也很简单,通过 Model 的 create()
方法插入数据:
const result = await User.create({ username: "bob", password: "123456" });
总结
通过本文,我们学习了在 Deno 中使用 Denodb 和 Dex 进行 ORM 编程的方法。ORM 可以帮助我们更方便地进行数据库操作,提高开发效率和质量。熟练掌握 ORM 编程技能可以极大地降低开发人员的工作量,让我们更专注于业务逻辑的实现。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/664da429d3423812e4d30f27