SeaORM简介
SeaORM 是一个关系型 ORM,用于帮助你像使用动态语言那样,在 Rust 中构建 Web 服务。实现所需的Trait以及创建并插入测试数据
在使用 SeaORM 之前,需要进行一些初始操作。本章我们将创建数据表、导入初始示例数据以及实现所需的 trait。最后,我们通过查询所有分类列表来验证这些操作是否正常运行。使用 SeaORM 查询数据
本章我们将讨论如何使用 SeaORM 进行查询:查询条件、分页、查询单条记录等。使用 SeaORM 插入数据
本章将讨论如何使用 SeaORM 添加记录。使用 SeaORM 修改数据
本章讨论使用 SeaORM 修改数据使用 SeaORM 删除数据
本章将讨论如何使用 SeaORM 实现删除。使用 SeaORM 操作一对多和多对一关系
正如其名,关系型数据库中的“关系”是很重要的部分。SeaORM 支持常见的数据关系,本章将讨论其中的一对多和多对一关系。SeaORM 的命令行工具和自动迁移
SeaORM 提供了一个命令行工具,可以快速生成实体。同时,还提供了自动迁移功能。SeaORM 操作多对多关系
本章将讨论多对多:一篇文章可以有多个标签,同样的,一个标签可以对应多篇文章。总结与作业
总结与作业
SeaORM简介
- 266582
- 2022-05-31 17:47:06
本专题将带你体验 SeaORM 和 axum 开发。
SeaORM 是一个关系型 ORM,用于帮助你像使用动态语言那样,在 Rust 中构建 Web 服务。
SeaORM 特点
-
异步:基于 SQLx,SeaORM 天生就支持异步。
-
动态:基于 SeaQuery,SeaORM 让你无需 与 ORM 作斗争,而轻松构建复杂的查询。
-
可测试:使用模拟连接来编写单元测试,以便测试你的逻辑。
-
面向服务:快速构建在 API 中加入、过滤、排序和分页数据的服务。
动态:基于 SeaQuery,SeaORM 让你无需 与 ORM 作斗争,而轻松构建复杂的查询。
面向服务:快速构建在 API 中加入、过滤、排序和分页数据的服务。
SeaORM 术语
Model
实例只能用于只读操作;如果需要进行写操作,需要使用 ActiveModel
的实例。
示例说明
本专题通过一个简化的文章系统对 SeaORM 和 axum 开发进行讲解。
数据库和运行时
本专题使用 PostgreSQL 数据库,以及 tokio 异步运行时。
分类(category
)
字段 | 说明 |
---|---|
id | 主键。自增 |
name | 分类名称 |
文章(article
)
字段 | 说明 |
---|---|
id | 主键。自增 |
category_id | 外键。文章所属的分类ID |
title | 文章标题 |
contet | 文章内容 |
创建项目
使用 cargo
创建好项目之后,加入以下依赖:
axum="0.5"
tokio={ version="1", features=["full"] }
sea-orm={ version="0.8", features=["runtime-tokio-native-tls", "sqlx-postgres", "debug-print"] }
示例代码
-
本专题代码位于AxumCourse/axum-with-seaorm仓库
-
本节代码位于00/准备工作分支
本专题代码位于AxumCourse/axum-with-seaorm仓库