
Database Integration
SQLx, Diesel, truy cập database async, connection pooling, migration, query builder, mẫu ORM
1Sự khác biệt chính giữa SQLx và Diesel về việc kiểm tra query là gì?
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ó.
2Trong 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?
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.
3Làm thế nào để cấu hình một connection pool với SQLx cho một ứng dụng PostgreSQL async?
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.
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?
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
Các chủ đề phỏng vấn Rust khác
Cơ bản về Rust
Ownership & Borrowing
Structs & Enums
Xử lý lỗi
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialization
Unsafe Rust
Trait nâng cao
Lifetime Nâng Cao
Type System
Tokio & Async I/O
Tối ưu hóa Hiệu suất
Memory Management
Web Frameworks
Design Pattern trong Rust
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í