Created: July 10, 2017

Working with the MySQL in Go

Andrew Minkin.

Andrew Minkin

ex Team Lead

Backend development
Working with the MySQL in Go

Today I want to tell about my little experience with MySQL (although you can use any other database here) in Go.

The way to work with the database from Go

I found a great way to work with the database from Go and can't wait to share it.

In general, Go has several important things to do in order to make inquiries. For example, database/sql and github.com/go-sql-driver/mysql

A typical example looks like this:

You can view the github gist here or go to the full page version here

And in order to map the query result into a structure, we will use github.com/jmoiron/sqlx.

SQLX is a set of extensions on top of the database/sql that allow you to make a minimal “ORM” in Go.

For example, we work with such a model

You can view the github gist here or go to the full page version here

We have a simple database scheme

You can view the github gist here or go to the full page version here

The connection to the database will look like this

You can view the github gist here or go to the full page version here

SQLX bunch of methods

Sqlx has a bunch of methods, which start with a Must. MustExec, MustBegin. You have to use them with caution because they throw panic and your application can crash when you do not want it :)

CRUDs will look like this:

You can view the github gist here or go to the full page version here

That's all. Just in case, the complete code:

You can view the github gist here or go to the full page version here