Golang database/sql.DB.Prepare function example

package database/sql

Prepare creates a prepared statement for later queries or executions. Multiple queries or executions may be run concurrently from the returned statement.

Golang database/sql.DB.Prepare function usage example

 func (db *Config) prebuild() (err error) {
  queries := []string{
 `CREATE TABLE IF NOT EXISTS rules (
 id BIGINT NOT NULL AUTO_INCREMENT,
 host VARCHAR(128) NOT NULL DEFAULT '',
 json TEXT NOT NULL,
 updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (id),
 UNIQUE KEY (host)
 )`,
  }
  for _, query := range queries {
 if _, err = db.db.Exec(query); err != nil {
 return
 }
  }
  // Prepared statements for storage
  if db.stmt.Check, err = db.db.Prepare(`SELECT COUNT(*) FROM rules WHERE updated > ?`); err != nil {
 return
  }
  if db.stmt.Rules, err = db.db.Prepare(`SELECT host, json FROM rules`); err != nil {
 return
  }
  return
 }

Reference :

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

Advertisement