细雨 ORM 速成课程

DDD

DDD

2025-01-14

503人浏览

转载

介绍

drizzle orm 是一个简单、轻量级的 typescript orm。它被设计为易于使用且易于理解。它设计用于与 mysql 数据库一起使用,但可以轻松扩展以与其他数据库一起使用。

开始使用

drizzle orm 支持 postgresql、mysql 和 sqlite。本指南将重点介绍 mysql,但所有数据库的概念都是相同的。
您可以在 drizzle orm 上了解更多详细信息

安装

要安装 drizzle orm,您需要从 npm 安装软件包。

npm i drizzle-orm pg dotenv
npm i -d drizzle-kit tsx @types/pg

npm i drizzle-orm pg dotenv - 此命令安装 drizzle orm 包、pg 包和 dotenv 包。 pg 包是 postgresql 支持所必需的,但 mysql 或 sqlite 不需要它。

npm i -d drizzle-kit tsx @types/pg - 此命令安装 drizzle kit 包、tsx 包和 @types/pg 包。 drizzle orm 需要 drizzle kit 包才能与 typescript 配合使用。

配置

要配置 drizzle orm,您需要在项目的根目录中创建一个 .env 文件。该文件应包含以下信息:

database_url=your-database-url

将 your-database-url 替换为您的数据库的 url。例如,如果您使用 mysql,则 url 应如下所示:

database_url=mysql://username:password@localhost:3306/database

在 drizzle.config.ts 文件中设置 drizzle 配置。

import 'dotenv/config';
import { defineconfig } from 'drizzle-kit';

export default defineconfig({
  out: './drizzle',
  schema: './src/db/schema.ts',
  dialect: 'postgresql',
  dbcredentials: {
    url: process.env.database_url!,
  },
});

 创建一个表

要在数据库中创建表,您需要在名为 schema.ts 的文件中定义架构。该文件应包含以下信息:

import { pgtable, unique, integer, varchar } from 'drizzle-orm/pg-core';
import { sql } from 'drizzle-orm';

export const users = pgtable(
  'users',
  {
    id: integer().primarykey().generatedalwaysasidentity({
      name: 'users_id_seq',
      startwith: 1,
      increment: 1,
      minvalue: 1,
      maxvalue: 2147483647,
      cache: 1,
    }),
    name: varchar({ length: 255 }).notnull(),
    age: integer().notnull(),
    email: varchar({ length: 255 }).notnull(),
  },
  (table) => {
    return {
      usersemailunique: unique('users_email_unique').on(table.email),
    };
  }
);

我们定义一个名为 users 的表,其中包含四列:id、name、age 和 email。 id 列是自增主键,name、age、email 列是必填项。

 连接到数据库

在src/db目录下创建index.ts文件,并初始化与数据库的连接。

import 'dotenv/config';
import { drizzle } from 'drizzle-orm/node-postgres';

const db = drizzle(process.env.database_url!);

我们已经在 .env 文件中定义了 database_url。我们正在使用 drizzle 功能来连接数据库。

 插入数据

要将数据插入到 users 表中,可以使用 db 对象的 insert 方法。

度加AI
度加AI

度加AI官网入口,百度官方 AIGC 创作平台,支持 AI 成片、AI 生文、数字人、声音克隆、配音字幕与智能剪辑等在线创作能力。

下载
import { users } from './schema';

const user = await db.insert(users).values({
  name: 'john doe',
  age: 30,
  email: '
});

我们正在使用 db 对象的 insert 方法将新用户插入到 users 表中。我们将一个具有姓名、年龄和电子邮件属性的对象传递给 value 方法。

 查询数据

要从users表中查询数据,可以在db对象上使用select方法。

import { users } from './schema';

const user = await db.select(users).where(users.id.eq(1)).execute();

我们使用 db 对象上的 select 方法从 users 表中查询用户。我们使用 where 方法根据 id 列过滤结果。

 更新数据

要更新 users 表中的数据,可以使用 db 对象的 update 方法。

import { users } from './schema';

const user = await db.update(users).set({ age: 31 }).where(users.id.eq(1)).execute();

我们正在使用 db 对象的 update 方法来更新 users 表中的用户。我们使用set方法将age列设置为31,并使用where方法根据id列过滤结果。

 删除数据

要从users表中删除数据,可以使用db对象的delete方法。

import { users } from './schema';

const user = await db.delete(users).where(users.id.eq(1)).execute();

我们正在 db 对象上使用 delete 方法从 users 表中删除用户。我们使用 where 方法根据 id 列过滤结果。

结论

drizzle orm 是一个简单、轻量级的 typescript orm。它被设计为易于使用且易于理解。它设计用于与 mysql 数据库一起使用,但可以轻松扩展以与其他数据库一起使用。您可以在 drizzle orm 上了解更多详细信息

谢谢

感谢您阅读本指南。我希望你觉得它有帮助。如果您有任何问题或反馈,请随时与我联系。我很想听听你的消息。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql typescript

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

2026.02.13

125

17

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

2026.02.25

355

17

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

2026.03.13

208

19

TypeScript 全栈开发进阶指南
TypeScript 全栈开发进阶指南

面向有 JavaScript 基础的开发者,深入讲解 TypeScript 的类型系统与全栈开发实践。

2026.06.03

98

29

TypeScript Node.js 全栈工程化与Monorepo架构实践
TypeScript Node.js 全栈工程化与Monorepo架构实践

本专题围绕 TypeScript 在 Node.js 全栈开发中的工程化实践展开,系统讲解 Monorepo 架构设计、包管理策略、模块复用机制以及服务端与前端统一类型系统的构建方法。通过真实项目案例,帮助开发者提升大型全栈项目的可维护性与协作效率。

2026.06.16

88

8

mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

1118

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

754

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

472

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

1376

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 124人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 224人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习