Сегодня хочу рассказать о небольшом опыте работы с MySQL (хотя тут можно использовать и любую другую БД) в Go.
Я нашел для себя отличный способ работать с БД из Go и спешу им поделиться.
Вообще в Go есть несколько важных вещей для того, чтобы делать запросы. Например database/sql и github.com/go-sql-driver/mysql.
Типичный пример выглядит так
А для того, чтобы мапить результат запроса в структуру — будем использовать github.com/jmoiron/sqlx
sqlx — это набор экстеншнов поверх database/sql которые позволяют сделать минимальную “орм” в Go.
Допустим мы будем работать с такой моделью
Схема БД у нас простая
Подключение к БД будет выглядеть таким образом
У sqlx есть куча методов, которые начинаются с Must. MustExec, MustBegin. Использовать нужно их с осторожностью, потому как они кидают панику и ваше приложение может крашить, когда вы не хотите этого :)
Круды будут выглядеть так
На этом все. На всякий случай полный код