域名 AXUM.RS 将于 2025 年 10 月到期。我们无意再对其进行续费,如果你有意接续这个域名,请与我们取得联系。
  • AXUM.RS 现仅需人民币 3000 元(大写:叁仟元整。接受适度议价
  • 按照行业规则,AXUM.RS 到期后,大概率会进入长时间的赎回期,该期间内,如果你想拥有该域名,将要付出高额的费用
  • 我们已启用 AXUM.EU.ORG 域名,并将持续运营
  • 仅接受微信或支付宝交易
如果你对 AXUM.RS 有兴趣,请和我们进行联系:

为什么选择 sqlx 而不是 ORM?

强类型语言中,数据库操作的痛点是什么?

在 Rust 等强类型语言中,操作数据库最大的痛点当然是 Rust 语言的数据结构(比如:结构体、枚举等)与数据表字段的映射。

这也是很多人用 ORM 的主要原因之一吧。

另一个痛点是,书写 SQL 语句。尤其是在数据表比较复杂或者更改数据表定义时,这个问题尤其突出。

那么,真的需要 ORM 吗?不可否认,ORM 提供了高度抽象,让数据库操作变得犹如操作结构体等原生数据结构。但它的弊端也很突出:

  • 过度抽象:为了实现如操作结构体般操作数据库,ORM 进行了高度的抽象,甚至到了过度抽象的程度。虽然 Rust 语言的宏(在 Rust 中,ORM 基本都是通过宏来实现功能)提供了零成本抽象,但过度抽象给程序的调试,以及程序员对流程的把握带来了不少的挑战,更不用说优化 SQL 语句了。

  • 生成的 SQL 过于通用:

    • ORM 通常为多种数据库提供支持,这就意味着,它生成的 SQL 语句是通用的,很大机会用不到数据库引擎提供的优化功能
    • ORM 为了实现各场景通用,也只能生成通用的 SQL 语句
  • 某些 ORM 提供 RAW 的概念,允许用户书写原始 SQL 语句。为了弥补生成 SQL 过于通用或者适用某些需要优化 SQL 语句的场景,某些 ORM 允许用户书写原始 SQL 语句。我都手写 SQL 语句了,为什么还要用 ORM?

sqlx 能解决哪些痛点?

等下,你刚刚说,手写 SQL 语句尤其是在复杂表或修改表结构时,是一大痛点,你现在又在推 sqlx 不是自相矛盾?

借助 AI 编程助手,SQL 语句基本就告别手写了。

AI 编程助手及免费 AI API

  • Copilot:提供了一定的免费额度
  • Codeium:免费 AI 编程助手
  • Cody:免费 AI 编程助手,好像需要 VSCODE 安装 Python 插件
  • Cline:通过 chat 直接生成项目,可以使用多种 AI 模型。其 fork 版的 Roo Cline 更为方便的功能。
  • Cherry Studio:支持多种 AI 模型的桌面应用

本人用的是 Codeium 做代码补全,偶尔会用 Cline 来做一些测试用的小项目,同时会使用 Cherry Studio 来做一些转换,比如将 SQL CREATE 语句转换成对应的 Rust 数据结构。

免费 AI API

现在很多为爱发电的朋友提供免费的 API,这些 API 支持主流的 AI 模型,并且可以通过每日签到来获取积分/金额,以便使用他们的 API:

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