什么是ORM
对象关系映射器(Object Relational Mapper, ORM)是一个编程库,可帮助您从面向对象编程(OOP)语言与关系数据库进行交互。
数据库中的表和列映射到对象和属性,而其他方法允许您从数据库中加载和存储数据。
什么是SeaORM
Rust中构建的服务是轻量级的(较小的二进制文件大小,较低的内存使用量)、安全的(具有编译时保证)、正确的(如果单元测试设计良好)和快速的(编译时优化最小化了运行时开销)。
由于Rust是一种静态的、强类型的、编译的、线程安全的、非垃圾收集的、非常规的面向对象语言,在Rust中使用ORM与您已经熟悉的其他脚本语言有点不同。
SeaORM是Rust语言中一个ORM库,它试图帮助您获得上述好处,同时避免在Rust中编程时出现的问题。
什么是sea-orm-cli
sea-orm-cli是发现数据库中的所有表,并为每个表生成相应的SeaORM实体文件的工具。
如何用sea-orm-cli生成派生serde序列化/反序列化特征的实体文件
默认情况下,sea-orm-cli生成的文件没有派生serde序列化/反序列化特征,而这会无法让生成的Model直接作为Axum接受数据的泛型参数,重复生成一个派生serde序列化/反序列化特征的结构体会加载工作量的同时,也带来了代码的冗余,可喜的是sea-orm-cli提供了能直接派生serde序列化/反序列化特征的方法,具体如下:
sea-orm-cli generate entity -u mysql://root:123123@localhost:3306/你的数据库名称 -o src/entities --with-serde=both
上方的 --with-serde=both是关键参数,加上这个参数即可生成派生serde序列化/反序列化特征的Model了,示例如下:
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize)]
#[sea_orm(table_name = "yr_article")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i64,
……
}
2013-2024 极贸易 www.jimaoyi.com 版权所有 | 御融(北京)科技有限公司 All Rights Reserved
增值电信业务经营许可证:京B2-20200664 | 京ICP备14004911号-8