Назад к вопросам
Senior
4
Используете ORM или ручные запросы для работы с базой данных?
Компании, где спрашивали
Финтехробот
Ответ от нейросети
sobes.tech AI
В Go часто используют оба подхода — ORM и ручные SQL-запросы — в зависимости от задачи. ORM (например, GORM) удобен для быстрого прототипирования и работы с простыми CRUD-операциями, он абстрагирует SQL и позволяет работать с базой через структуры и методы.
Однако для сложных запросов, оптимизации производительности или специфичных операций часто предпочтительнее писать ручные запросы с помощью стандартной библиотеки database/sql или sqlx. Это даёт полный контроль над SQL и может быть эффективнее.
Пример использования GORM:
import (
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
}
func getUser(db *gorm.DB, id uint) (*User, error) {
var user User
if err := db.First(&user, id).Error; err != nil {
return nil, err
}
return &user, nil
}
Пример ручного запроса с database/sql:
import (
"database/sql"
)
func getUser(db *sql.DB, id int) (*User, error) {
user := &User{}
err := db.QueryRow("SELECT id, name FROM users WHERE id = ?", id).Scan(&user.ID, &user.Name)
if err != nil {
return nil, err
}
return user, nil
}