Rust

Database Integration

SQLx, Diesel, truy cập database async, connection pooling, migration, query builder, mẫu ORM

20 câu hỏi phỏng vấn·
Senior
1

Sự khác biệt chính giữa SQLx và Diesel về việc kiểm tra query là gì?

Câu trả lời

SQLx thực hiện kiểm tra query tại compile-time bằng cách kết nối đến một database thực trong quá trình build. Diesel sử dụng một DSL (Domain-Specific Language) của Rust để xây dựng các query type-safe mà không cần kết nối database tại compile-time. Cả hai cách tiếp cận đều đảm bảo an toàn kiểu, nhưng SQLx cho phép viết raw SQL đã được kiểm tra, trong khi Diesel yêu cầu sử dụng API Rust của nó.

2

Trong SQLx, macro nào cho phép thực thi một query và tự động ánh xạ kết quả sang một struct Rust?

Câu trả lời

Macro query_as! của SQLx thực thi một query SQL và tự động ánh xạ kết quả sang một struct Rust được chỉ định. Macro này kiểm tra tại compile-time rằng các cột trả về khớp với các trường của struct, đảm bảo an toàn kiểu. Macro query! trả về một kiểu ẩn danh, trong khi query_scalar! được dùng để trích xuất một giá trị đơn.

3

Làm thế nào để cấu hình một connection pool với SQLx cho một ứng dụng PostgreSQL async?

Câu trả lời

SQLx sử dụng PgPoolOptions để cấu hình một connection pool PostgreSQL async. Phương thức max_connections xác định số kết nối tối đa, và connect tạo pool từ URL của database. Pool tự động quản lý việc lấy và giải phóng kết nối, đồng thời hỗ trợ timeout và retry có thể cấu hình.

4

Trong Diesel, làm thế nào để định nghĩa một schema bảng nhằm kích hoạt các thao tác CRUD type-safe?

5

Một struct phải triển khai trait Diesel nào để chèn dữ liệu vào một bảng?

+17 câu hỏi phỏng vấn

Nắm vững Rust cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí