使用 Ecto.Query 进行数据查询
1. 引言
Ecto 提供了强大的查询功能,大多数查询无需手动编写 SQL 即可完成。若遇到 Ecto 查询语言无法处理的情况,也可安全地使用手写 SQL。接下来,我们将构建数据层,涵盖查询和持久化数据所需的一切。
2. Repo 模块
在创建应用时生成的 PhoneApp.Repo 模块,用于处理与数据库的所有交互。该模块代码仅一行:
# phone_app/lib/phone_app/repo.ex
defmodule PhoneApp.Repo do
use Ecto.Repo,
otp_app: :phone_app,
adapter: Ecto.Adapters.Postgres
end
use Ecto.Repo 定义了一系列函数,包括插入数据、更新数据、查询数据、执行原始 SQL 语句等。这些函数可通过重写进行定制,但这属于高级技巧,通常较少使用。
Repo 模块是 Ecto 设计的核心部分,应用中的每个查询都要经过它。一个 Repo 连接到一个数据库,大多数应用只有一个 Repo 模块,但也可以有多个 Repo 连接不同的数据库。
3. 查询和持久化联系人数据
我们的应用将与 Schema.Contact 进行简单交互,只需能通过 ID 检索联系人并使用唯一电话号码创建新联系人即可。以下是具体操作步骤:
1. 创建
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



