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:

GitHub Gist is loading...

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

GitHub Gist is loading...

We have a simple database scheme

GitHub Gist is loading...

The connection to the database will look like this

GitHub Gist is loading...

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:

GitHub Gist is loading...

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

GitHub Gist is loading...

Optimize your backend solutions with Mad Devs.

Latest articles here

The Nuances of Testing in Pair Cucumber.js + Puppeteer.

The Nuances of Testing in Pair Cucumber.js + Puppeteer

This article will talk about some points that will save time for those who will write tests using the tools: Cucumber.js + Puppeteer. I hope it will...

How to Run Code Climate Code Analysis Locally Using VSCode + Remote-Containers.

How to Run Code Climate Code Analysis Locally Using VSCode + Remote-Containers

Everyone who writes code knows that the best code is code that is not written! But as they say, everyone is not perfect, and we have to write code....

Running Geo Django on ElasticBeanstalk.

Running Geo Django on Elastic Beanstalk

I want to tell you this story because I wasted about 14 hours to realize how to achieve it correctly.NB❗Sometimes working with Elastic Beanstalk can...

Go to blog