本专题将带你体验 SeaORM 和 axum 开发。
SeaORM 特点
-
异步:基于 SQLx,SeaORM 天生就支持异步。
-
动态:基于 SeaQuery,SeaORM 让你无需 与 ORM 作斗争,而轻松构建复杂的查询。
-
可测试:使用模拟连接来编写单元测试,以便测试你的逻辑。
-
面向服务:快速构建在 API 中加入、过滤、排序和分页数据的服务。
SeaORM 术语
SeaORM术语 | 对应的数据库术语 |
---|---|
Schema | 数据库(Database ) |
Entity | 数据表及关系(Table and Relation ) |
Model | 数据表(Table ) |
Relation | 关系(Relation ) |
Column | 字段的定义 |
PrimaryKey | 主键(Primary key ) |
Attribute | 字段(Column ) |
ActiveModel | 可写操作 |
示例说明
本专题通过一个简化的文章系统对 SeaORM 和 axum 开发进行讲解。
数据库和运行时
数据结构
分类(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/准备工作分支