Install sqlx with go get, then use sqlx.Connect to open a database connection and db.Select or db.Get to scan rows directly into Go structs.
package main
import (
"log"
"github.com/jmoiron/sqlx"
)
type Person struct {
FirstName string `db:"first_name"`
LastName string `db:"last_name"`
}
func main() {
db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")
if err != nil {
log.Fatalln(err)
}
var p Person
err = db.Get(&p, "SELECT * FROM person WHERE first_name=$1", "Jason")
if err != nil {
log.Fatalln(err)
}
log.Println(p.FirstName)
}