使用sea-orm-cli自动生成为实体派生serde序列化/反序列化特征的方法

作者:御融科技 发布时间:2025-04-02

什么是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,
    ……
}


【声明】:极贸易登载该文章目的是为更广泛的传递行业信息,不代表赞同其观点或证实其描述,本网站亦不为其版权负责。若无意侵犯您合法权益的内容,请联系本网站,核实后将立即予以删除!
标签: Rust sea-orm-cli SeaORM 序列化反序列化
栏 目

促进商业交流,为诚信商业社会助力,用数据创造新的商业价值,让供应链上下游更畅通。
生意的本质:把好的东西分享给有需要或有缘之人,赢取合理的服务费用,秉着做一单生意交一个朋友才是生意。生是生生不息,意乃心上之意。

公众号二维码
小程序二维码

业务范围

条款规则

联系我们

北京市丰台丽泽金融商务区平安幸福中心A座7层
406054635@qq.com
微信号:406054635
⚠️ 有任何疑问可关注极贸易小程序与在线客服进行咨询。
友情链接: 山西商人网 | LifeAdd生活方式

2013-2024 极贸易 www.jimaoyi.com 版权所有 | 御融(北京)科技有限公司 All Rights Reserved
增值电信业务经营许可证:京B2-20200664 | 京ICP备14004911号-8