
Database Integration
SQLx, Diesel, acceso async a bases de datos, connection pooling, migraciones, query builders, patrones ORM
1¿Cuál es la principal diferencia entre SQLx y Diesel en cuanto a la verificación de consultas?
¿Cuál es la principal diferencia entre SQLx y Diesel en cuanto a la verificación de consultas?
Respuesta
SQLx realiza la verificación de queries en tiempo de compilación conectándose a una base de datos real durante el proceso de build. Diesel usa un DSL (Domain-Specific Language) de Rust para construir queries type-safe sin necesitar una conexión a la base de datos en tiempo de compilación. Ambos enfoques garantizan la seguridad de tipos, pero SQLx permite escribir SQL crudo verificado, mientras que Diesel impone el uso de su API de Rust.
2En SQLx, ¿qué macro permite ejecutar una query y mapear automáticamente los resultados a una struct de Rust?
En SQLx, ¿qué macro permite ejecutar una query y mapear automáticamente los resultados a una struct de Rust?
Respuesta
La macro query_as! de SQLx ejecuta una query SQL y mapea automáticamente los resultados a una struct de Rust especificada. Esta macro verifica en tiempo de compilación que las columnas retornadas coincidan con los campos de la struct, garantizando la seguridad de tipos. La macro query! retorna un tipo anónimo, mientras que query_scalar! se usa para extraer un único valor.
3¿Cómo configurar un connection pool con SQLx para una aplicación PostgreSQL async?
¿Cómo configurar un connection pool con SQLx para una aplicación PostgreSQL async?
Respuesta
SQLx usa PgPoolOptions para configurar un connection pool de PostgreSQL asíncrono. El método max_connections define el número máximo de conexiones, y connect crea el pool a partir de la URL de la base de datos. El pool gestiona automáticamente la adquisición y liberación de conexiones, y soporta timeouts y retries configurables.
En Diesel, ¿cómo definir un esquema de tabla para habilitar operaciones CRUD type-safe?
¿Qué trait de Diesel debe implementar una struct para poder insertar datos en una tabla?
+17 preguntas de entrevista
Otros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Manejo de errores
Colecciones
Módulos y Paquetes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde y serialización
Unsafe Rust
Traits avanzados
Lifetimes Avanzados
Type System
Tokio & Async I/O
Optimización de Rendimiento
Memory Management
Web Frameworks
Patrones de diseño en Rust
Domina Rust para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis