Найти тему
Mad Devs

Работаем с MySQL в Go

Сегодня хочу рассказать о небольшом опыте работы с MySQL (хотя тут можно использовать и любую другую БД) в Go.

Я нашел для себя отличный способ работать с БД из Go и спешу им поделиться.

Вообще в Go есть несколько важных вещей для того, чтобы делать запросы. Например database/sql и github.com/go-sql-driver/mysql.

Типичный пример выглядит так

А для того, чтобы мапить результат запроса в структуру — будем использовать github.com/jmoiron/sqlx

sqlx — это набор экстеншнов поверх database/sql которые позволяют сделать минимальную “орм” в Go.

Допустим мы будем работать с такой моделью

Схема БД у нас простая

Подключение к БД будет выглядеть таким образом

У sqlx есть куча методов, которые начинаются с Must. MustExec, MustBegin. Использовать нужно их с осторожностью, потому как они кидают панику и ваше приложение может крашить, когда вы не хотите этого :)

Круды будут выглядеть так

На этом все. На всякий случай полный код