
Database Integration
SQLx, Diesel, การเข้าถึงฐานข้อมูลแบบ async, connection pooling, migration, query builder, รูปแบบ ORM
1ความแตกต่างหลักระหว่าง SQLx และ Diesel ในด้านการตรวจสอบ query คืออะไร?
ความแตกต่างหลักระหว่าง SQLx และ Diesel ในด้านการตรวจสอบ query คืออะไร?
คำตอบ
SQLx ทำการตรวจสอบ query ในเวลาคอมไพล์โดยเชื่อมต่อกับฐานข้อมูลจริงระหว่างกระบวนการ build ส่วน Diesel ใช้ DSL (Domain-Specific Language) ของ Rust เพื่อสร้าง query ที่ type-safe โดยไม่ต้องเชื่อมต่อฐานข้อมูลในเวลาคอมไพล์ ทั้งสองแนวทางรับประกันความปลอดภัยของชนิดข้อมูล แต่ SQLx อนุญาตให้เขียน raw SQL ที่ผ่านการตรวจสอบแล้ว ในขณะที่ Diesel บังคับให้ใช้ Rust API ของมัน
2ใน SQLx มาโครใดที่อนุญาตให้รัน query และแมปผลลัพธ์ไปยัง struct ของ Rust โดยอัตโนมัติ?
ใน SQLx มาโครใดที่อนุญาตให้รัน query และแมปผลลัพธ์ไปยัง struct ของ Rust โดยอัตโนมัติ?
คำตอบ
มาโคร query_as! ของ SQLx รัน query SQL และแมปผลลัพธ์ไปยัง struct ของ Rust ที่ระบุโดยอัตโนมัติ มาโครนี้ตรวจสอบในเวลาคอมไพล์ว่าคอลัมน์ที่ส่งกลับตรงกับฟิลด์ของ struct เพื่อรับประกันความปลอดภัยของชนิดข้อมูล มาโคร query! ส่งคืนชนิดแบบนิรนาม ในขณะที่ query_scalar! ใช้สำหรับดึงค่าเดี่ยว
3จะกำหนดค่า connection pool ด้วย SQLx สำหรับแอปพลิเคชัน PostgreSQL แบบ async ได้อย่างไร?
จะกำหนดค่า connection pool ด้วย SQLx สำหรับแอปพลิเคชัน PostgreSQL แบบ async ได้อย่างไร?
คำตอบ
SQLx ใช้ PgPoolOptions เพื่อกำหนดค่า connection pool ของ PostgreSQL แบบ async เมธอด max_connections กำหนดจำนวนการเชื่อมต่อสูงสุด และ connect สร้าง pool จาก URL ของฐานข้อมูล pool จะจัดการการขอและคืนการเชื่อมต่อโดยอัตโนมัติ และรองรับ timeout และ retry ที่กำหนดค่าได้
ใน Diesel จะกำหนด schema ของตารางเพื่อเปิดใช้งานการดำเนินการ CRUD แบบ type-safe ได้อย่างไร?
struct ต้อง implement Diesel trait ใดเพื่อแทรกข้อมูลลงในตาราง?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
การจัดการข้อผิดพลาด
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
มาโคร
Serde และการ Serialization
Unsafe Rust
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี