Skip to content
Projects

mackee/go-sqlla has 47 GitHub stars and 5 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 16:33 UTC. Last push 2026-09-09.

How these counts are measured

Type safe, reflect free, generative SQL Builder + ORM-like methods

Measured star growth

in 24h
0
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

go-sqlla

Type safe, reflect free, generative SQL Builder

INSTALL

$ go install github.com/mackee/go-sqlla/v2/cmd/sqlla@latest

SYNOPSIS

person.go:

package table

//go:generate sqlla

//+table: person
type Person struct {
	ID uint64 `db:"id"`
	FirstName string `db:"first_name"`
	LastName  string `db:"last_name"`
}

Run generate:

$ ls
person.go
$ go generate
$ ls
person.go person_auto.go

Same package as the person.go:


import (
	"database/sql"
	"log"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	db, err := sql.Open("sqlite3", "./foo.db")
	if err != nil {
		log.Fatalf("failed connect database: %s", err)
	}

	q := NewPersonSQL().Select().ID(uint64(1))
	query, args, err := q.ToSql()
	if err != nil {
		log.Fatalf("query build error: %s", err)
	}

	row := db.QueryRow(query, args...)
	var id uint64
	var firstName, lastName string
	err = row.Scan(&id, &firstName, &lastName)
	if err != nil {
		log.Fatalf("query exec error: %s", err)
	}
	log.Printf("id=%d, first_name=%s, last_name=%s", id, firstName, lastName)
}

Explore related projects