What’s your preferred setup to work with SQL DB (without ORM) ?

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/golang

Our great sponsors
  • talent.io - Download talent.io’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • SonarQube - Static code analysis for 29 languages.
  • sqlx

    general purpose extensions to golang's database/sql

    I basically use the db/sql package/interface, but I use sqlx for its StructScan ability that will scan straight into my db struct rather than having to scan into the individual fields.

  • sqlc

    Generate type-safe code from SQL

    sqlc for Postgresql databases is really nice. MySQL also works but has more issues and currently they are working on SQLite support.

  • talent.io

    Download talent.io’s Tech Salary Report. Median salaries, most in-demand technologies, state of the remote work... all you need to know your worth on the market by tech recruitment platform talent.io

  • sqlf

    sqlf generates parameterized SQL statements in Go, sprintf style

    sqlf for building parameterized queries, yet to settle on a row-to-struct mapper, doing it manually for now

  • go-sqlite

    Low-level Go interface to SQLite 3

    I like and use https://github.com/zombiezen/go-sqlite for CGo-free SQLite. It avoids some of the problems database/sql has, discussed here: https://crawshaw.io/blog/go-and-sqlite.

  • Dapper

    Dapper - a simple object mapper for .Net

    sqlx has worked pretty well for me if you are looking for a fairly light wrapper. I wish there was an equivalent of the dapper library for C#/.NET.

  • bun

    SQL-first Golang ORM (by uptrace)

    Though, i've would give a try to bun

  • xo

    Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server (by xo)

    i use xo . Reason is i prefer designing schema first and creating golang scaffolding later. Xo takes schema and gives me basic create/update/delete operations by default and i can also generate gocode for any sql queries that i write.

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

  • Squirrel

    Fluent SQL generation for golang

    We have used squirrel (https://github.com/Masterminds/squirrel) for query building and sqlx as a database/sql wrapper quite extensively.

  • sqly

    Simple database/sql helper library to execute queries

    That's what I'm trying to remove with sqly (Scully). But it's mostly a PoC at this moment.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts