SeaORM简介

本专题将带你体验 SeaORM 和 axum 开发。

SeaORM 是一个关系型 ORM,用于帮助你像使用动态语言那样,在 Rust 中构建 Web 服务。

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与数据的映射

示例说明

数据库和运行时

本专题使用 PostgreSQL 数据库,以及 tokio 异步运行时。

字段说明
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"] }

示例代码

要查看完整内容,请先登录