Ответ
В Go нет встроенной ORM, но есть популярные сторонние библиотеки:
- GORM - самая популярная ORM для Go с поддержкой ассоциаций, хуков, миграций:
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
user := User{Name: "John"}
db.Create(&user)
-
XORM - более легковесная альтернатива с хорошей производительностью
-
ent - ORM от Facebook с кодогенерацией и строгой типизацией
Важно: многие Go-разработчики предпочитают использовать не ORM, а:
- database/sql (стандартная библиотека)
- sqlx (упрощает работу с database/sql)
- sqlc (генерация кода из SQL-запросов)
ORM удобны для быстрой разработки, но могут скрывать сложные SQL-запросы и снижать производительность. Выбор зависит от проекта.