官术网_书友最值得收藏!

  • Machine Learning With Go
  • Daniel Whitenack
  • 257字
  • 2021-07-08 10:37:28

Connecting to an SQL database

The first thing we need do before connecting to an SQL-like database is identify the particular database that we will be interacting with and import a corresponding driver. In the following examples, we will be connecting to a Postgres database and will utilize the github.com/lib/pq database driver for database/sql. This driver can be loaded via an empty import (with a corresponding comment):

import (
"database/sql"
"fmt"
"log"
"os"

// pq is the library that allows us to connect
// to postgres with databases/sql.
_ "github.com/lib/pq"
)

Now let's assume that you have exported the Postgres connection string to an environmental variable PGURL. We can easily create an sql.DB value for our connection via the follow code:

// Get the postgres connection URL. I have it stored in
// an environmental variable.
pgURL := os.Getenv("PGURL")
if pgURL == "" {
log.Fatal("PGURL empty")
}

// Open a database value. Specify the postgres driver
// for databases/sql.
db, err := sql.Open("postgres", pgURL)
if err != nil {
log.Fatal(err)
}
defer db.Close()

Note that we need to defer the close method on this value. Also, note that creating this value does not mean that you have made a successful connection to the database. This is merely a value used by database/sql to connect to the database when triggered to do so by certain operations (such as a query).

To ensure that we can make a successful connection to the database, we can use the Ping method:

if err := db.Ping(); err != nil {
log.Fatal(err)
}
主站蜘蛛池模板: 龙里县| 廊坊市| 清流县| 桐城市| 临邑县| 蓝山县| 雅江县| 普兰县| 泾川县| 鄂温| 永善县| 肇东市| 富民县| 静海县| 肃宁县| 驻马店市| 明溪县| 红河县| 沐川县| 南陵县| 华坪县| 鹤庆县| 涞源县| 东乡族自治县| 玛曲县| 嘉兴市| 抚顺市| 阳西县| 郧西县| 买车| 甘肃省| 宁明县| 建湖县| 富宁县| 连山| 新竹县| 西平县| 水富县| 尉氏县| 高阳县| 云林县|