Golang database/sql.DB.Begin and Close functions example

package database/sql

Begin starts a transaction. The isolation level is dependent on the driver.

Golang database/sql.DB.Begin function usage example

 func openTestConnConninfo(conninfo string) (*sql.DB, error) {
  datname := os.Getenv("PGDATABASE")
  sslmode := os.Getenv("PGSSLMODE")
  timeout := os.Getenv("PGCONNECT_TIMEOUT")
  if datname == "" {
 os.Setenv("PGDATABASE", "pqgotest")
  }
  if sslmode == "" {
 os.Setenv("PGSSLMODE", "disable")
  }
  if timeout == "" {
 os.Setenv("PGCONNECT_TIMEOUT", "20")
  }
  return sql.Open("postgres", conninfo)
 }

 db, err := openTestConnConninfo("user=usernametoaccessdb")
 if err != nil {
 t.Fatal(err)
 }
 defer db.Close() // <-- here

 _, err = db.Begin() // <--- here
 if err != nil {
 t.Fatal("unable to start a transaction with database server")
 }

References :

http://golang.org/pkg/database/sql/#DB.Close

http://golang.org/pkg/database/sql/#DB.Begin

Advertisement