/** This example was adapted from an excellent 5 part series https://www.calhoun.io/connecting-to-a-postgresql-database-with-gos-database-sql-package/ Setup go mod init gg/gg go get -u github.com/lib/pq **/ package main import ( "database/sql" "fmt" _ "github.com/lib/pq" ) const ( host = "localhost" port = 5432 user = "dbuser" password = "12345678" dbname = "univ" ) func main() { psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+ "password=%s dbname=%s sslmode=disable", host, port, user, password, dbname) db, err := sql.Open("postgres", psqlInfo) if err != nil { panic(err) } rows, err := db.Query("SELECT course_id,title, dept_name, credits FROM course LIMIT $1", 10) if err != nil { // handle this error better than this panic(err) } defer rows.Close() for rows.Next() { var course_id string var title string var dept_name string var credits int err = rows.Scan(&course_id, &title, &dept_name, &credits) if err != nil { // handle this error panic(err) } fmt.Printf("id:%3v nam:%-25v dep:%-15v cre:%1v\n", course_id, title, dept_name, credits) } // get any error encountered during iteration err = rows.Err() if err != nil { panic(err) } fmt.Println("Successfully connected!") defer db.Close() }