Sobes.tech
Назад к вопросам
Junior — Middle
78

Существуют ли реализованные решения Object-Relational Mapping (ORM) для языка Go?

Компании, где спрашивали
Evrone
Digital Spirit

Ответ от нейросети

sobes.tech AI

Да, для языка Go существует несколько популярных ORM-библиотек, которые облегчают работу с базами данных, предоставляя абстракцию над SQL-запросами. Среди них:

  • GORM — одна из самых популярных ORM для Go, поддерживает множество баз данных, миграции, ассоциации и т.д.
  • Ent — современный ORM с генерацией кода и удобным API.
  • XORM — простая и легковесная ORM с поддержкой основных функций.

Пример использования GORM:

import (
    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

type User struct {
    ID   uint
    Name string
}

func main() {
    db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
    if err != nil {
        panic("failed to connect database")
    }

    // Автоматическая миграция
    db.AutoMigrate(&User{})

    // Создание записи
    db.Create(&User{Name: "Alice"})

    // Чтение записи
    var user User
    db.First(&user, 1)
}

Использование ORM позволяет писать более чистый и поддерживаемый код, особенно при работе с большими проектами.